<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>[Note]Nginx高性能Web服务器详解 | Code(超脱)</title>
    <meta name="generator" content="VuePress 1.5.2">
    <link rel="icon" href="https://luo0412.gitee.io/static/images/logo/favicon.ico">
    <link rel="stylesheet" type="text/css" href="https://unpkg.com/viewerjs@1.9.0/dist/viewer.css">
    <script>((window.gitter = {}).chat = {}).options = {
    room: 'luo0412/core'
};
</script>
    <script src="https://sidecar.gitter.im/dist/sidecar.v1.js"></script>
    <script src="https://apps.bdimg.com/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="https://unpkg.com/viewerjs@1.9.0/dist/viewer.js"></script>
    <script>$(function () {

    // 1) 去掉中二病文字
    $(".navbar .dropdown-wrapper .title").each(function (index, item) {
        var title = $(item).text() || ""
        console.log(title)
        var index = title.indexOf("(")
        if (index > -1) {
            $(item).text(title.slice(0, index))
        }
    })
        
    // 2) 图片双击后支持预览
    var viewer = null
    $(document).on("dblclick","p img",function() {
        if (viewer != null) {
            viewer.destroy()
        }
        viewer = new Viewer(document.getElementById('app'), {
            viewed() {
                viewer.zoomTo(1);
            },
        });
    })

})</script>
    <meta name="description" content="Code(超脱)">
    <link rel="preload" href="/core/assets/css/0.styles.9fa494bc.css" as="style"><link rel="preload" href="/core/assets/js/app.acd7146a.js" as="script"><link rel="preload" href="/core/assets/js/2.bfd87e96.js" as="script"><link rel="preload" href="/core/assets/js/130.97cef5d5.js" as="script"><link rel="prefetch" href="/core/assets/js/10.1a561b08.js"><link rel="prefetch" href="/core/assets/js/100.2691f153.js"><link rel="prefetch" href="/core/assets/js/101.4c4e04e4.js"><link rel="prefetch" href="/core/assets/js/102.145733fd.js"><link rel="prefetch" href="/core/assets/js/103.f0009f27.js"><link rel="prefetch" href="/core/assets/js/104.1d496360.js"><link rel="prefetch" href="/core/assets/js/105.99c70432.js"><link rel="prefetch" href="/core/assets/js/106.5759f145.js"><link rel="prefetch" href="/core/assets/js/107.d0ee09e8.js"><link rel="prefetch" href="/core/assets/js/108.ecb36ae8.js"><link rel="prefetch" href="/core/assets/js/109.442cff1c.js"><link rel="prefetch" href="/core/assets/js/11.85698a90.js"><link rel="prefetch" href="/core/assets/js/110.42994f4a.js"><link rel="prefetch" href="/core/assets/js/111.72414147.js"><link rel="prefetch" href="/core/assets/js/112.7621ea7f.js"><link rel="prefetch" href="/core/assets/js/113.29ab0e92.js"><link rel="prefetch" href="/core/assets/js/114.8b6f9513.js"><link rel="prefetch" href="/core/assets/js/115.8d0a257e.js"><link rel="prefetch" href="/core/assets/js/116.64192929.js"><link rel="prefetch" href="/core/assets/js/117.a97e3c7d.js"><link rel="prefetch" href="/core/assets/js/118.874d46ea.js"><link rel="prefetch" href="/core/assets/js/119.32bc2693.js"><link rel="prefetch" href="/core/assets/js/12.a5c240ae.js"><link rel="prefetch" href="/core/assets/js/120.cc142a14.js"><link rel="prefetch" href="/core/assets/js/121.3141849f.js"><link rel="prefetch" href="/core/assets/js/122.69a51cd1.js"><link rel="prefetch" href="/core/assets/js/123.21da9ec2.js"><link rel="prefetch" href="/core/assets/js/124.166fe23c.js"><link rel="prefetch" href="/core/assets/js/125.4b6dcb87.js"><link rel="prefetch" href="/core/assets/js/126.2a81ebed.js"><link rel="prefetch" href="/core/assets/js/127.681e2a99.js"><link rel="prefetch" href="/core/assets/js/128.95504b80.js"><link rel="prefetch" href="/core/assets/js/129.77e2396e.js"><link rel="prefetch" href="/core/assets/js/13.813c1e1a.js"><link rel="prefetch" href="/core/assets/js/131.7a41b048.js"><link rel="prefetch" href="/core/assets/js/132.6edd7d8f.js"><link rel="prefetch" href="/core/assets/js/133.cd24b7b6.js"><link rel="prefetch" href="/core/assets/js/134.157ba8cb.js"><link rel="prefetch" href="/core/assets/js/135.b9f11ce4.js"><link rel="prefetch" href="/core/assets/js/136.6a06e30a.js"><link rel="prefetch" href="/core/assets/js/137.16cfaa70.js"><link rel="prefetch" href="/core/assets/js/138.55764123.js"><link rel="prefetch" href="/core/assets/js/139.b2c8e8b5.js"><link rel="prefetch" href="/core/assets/js/14.d6974a2b.js"><link rel="prefetch" href="/core/assets/js/140.d6d4644b.js"><link rel="prefetch" href="/core/assets/js/141.12f8aa43.js"><link rel="prefetch" href="/core/assets/js/142.ec3ed2d4.js"><link rel="prefetch" href="/core/assets/js/143.6ff6a22f.js"><link rel="prefetch" href="/core/assets/js/144.2805d2c3.js"><link rel="prefetch" href="/core/assets/js/145.8b42d24a.js"><link rel="prefetch" href="/core/assets/js/146.4a9ec811.js"><link rel="prefetch" href="/core/assets/js/147.32168755.js"><link rel="prefetch" href="/core/assets/js/148.8aaed9f7.js"><link rel="prefetch" href="/core/assets/js/149.65134e57.js"><link rel="prefetch" href="/core/assets/js/15.0024b844.js"><link rel="prefetch" href="/core/assets/js/150.de967a20.js"><link rel="prefetch" href="/core/assets/js/151.c8b03945.js"><link rel="prefetch" href="/core/assets/js/152.77379918.js"><link rel="prefetch" href="/core/assets/js/153.2a5fe117.js"><link rel="prefetch" href="/core/assets/js/154.92c76c1c.js"><link rel="prefetch" href="/core/assets/js/155.4e1d38d9.js"><link rel="prefetch" href="/core/assets/js/156.f70480bb.js"><link rel="prefetch" href="/core/assets/js/157.2cf38ceb.js"><link rel="prefetch" href="/core/assets/js/158.572988de.js"><link rel="prefetch" href="/core/assets/js/159.4175059d.js"><link rel="prefetch" href="/core/assets/js/16.1c709d81.js"><link rel="prefetch" href="/core/assets/js/160.bcb8cdf1.js"><link rel="prefetch" href="/core/assets/js/161.d46183bd.js"><link rel="prefetch" href="/core/assets/js/162.22830cb1.js"><link rel="prefetch" href="/core/assets/js/163.f7b7ba82.js"><link rel="prefetch" href="/core/assets/js/164.66e0f710.js"><link rel="prefetch" href="/core/assets/js/165.5ef52b0e.js"><link rel="prefetch" href="/core/assets/js/166.a26a9ef4.js"><link rel="prefetch" href="/core/assets/js/167.6964be8b.js"><link rel="prefetch" href="/core/assets/js/168.85fa92e8.js"><link rel="prefetch" href="/core/assets/js/169.a0f369f3.js"><link rel="prefetch" href="/core/assets/js/17.00d17b9b.js"><link rel="prefetch" href="/core/assets/js/170.81fd3491.js"><link rel="prefetch" href="/core/assets/js/171.7999945b.js"><link rel="prefetch" href="/core/assets/js/172.b5af78f0.js"><link rel="prefetch" href="/core/assets/js/173.996f7dc8.js"><link rel="prefetch" href="/core/assets/js/174.9885f772.js"><link rel="prefetch" href="/core/assets/js/175.da6abe5e.js"><link rel="prefetch" href="/core/assets/js/176.20a7e697.js"><link rel="prefetch" href="/core/assets/js/177.01fa762d.js"><link rel="prefetch" href="/core/assets/js/178.03839a0f.js"><link rel="prefetch" href="/core/assets/js/179.4977d456.js"><link rel="prefetch" href="/core/assets/js/18.740eca61.js"><link rel="prefetch" href="/core/assets/js/180.d91093a2.js"><link rel="prefetch" href="/core/assets/js/181.170120ea.js"><link rel="prefetch" href="/core/assets/js/182.868bccbb.js"><link rel="prefetch" href="/core/assets/js/183.6d5db84b.js"><link rel="prefetch" href="/core/assets/js/184.e7201f9b.js"><link rel="prefetch" href="/core/assets/js/185.385a9f0e.js"><link rel="prefetch" href="/core/assets/js/186.1ad08ea8.js"><link rel="prefetch" href="/core/assets/js/187.4b9c0de3.js"><link rel="prefetch" href="/core/assets/js/188.12f2e94e.js"><link rel="prefetch" href="/core/assets/js/189.361b7343.js"><link rel="prefetch" href="/core/assets/js/19.819f710b.js"><link rel="prefetch" href="/core/assets/js/190.419fc8ba.js"><link rel="prefetch" href="/core/assets/js/191.3f890e0b.js"><link rel="prefetch" href="/core/assets/js/192.1651713f.js"><link rel="prefetch" href="/core/assets/js/193.fd9cf880.js"><link rel="prefetch" href="/core/assets/js/194.f27c272d.js"><link rel="prefetch" href="/core/assets/js/195.d14fc237.js"><link rel="prefetch" href="/core/assets/js/196.54d330bf.js"><link rel="prefetch" href="/core/assets/js/197.033aaa54.js"><link rel="prefetch" href="/core/assets/js/198.23abd448.js"><link rel="prefetch" href="/core/assets/js/199.245b76da.js"><link rel="prefetch" href="/core/assets/js/20.f72e5eff.js"><link rel="prefetch" href="/core/assets/js/200.71644313.js"><link rel="prefetch" href="/core/assets/js/201.bb7ec45a.js"><link rel="prefetch" href="/core/assets/js/202.fcd5e68f.js"><link rel="prefetch" href="/core/assets/js/203.9f2874f3.js"><link rel="prefetch" href="/core/assets/js/204.5e1466c4.js"><link rel="prefetch" href="/core/assets/js/205.1f6b7864.js"><link rel="prefetch" href="/core/assets/js/206.fef935f7.js"><link rel="prefetch" href="/core/assets/js/207.6ed11d14.js"><link rel="prefetch" href="/core/assets/js/208.8017962a.js"><link rel="prefetch" href="/core/assets/js/209.7ed697c1.js"><link rel="prefetch" href="/core/assets/js/21.0c1523b3.js"><link rel="prefetch" href="/core/assets/js/210.5f0ef003.js"><link rel="prefetch" href="/core/assets/js/211.847fd2d9.js"><link rel="prefetch" href="/core/assets/js/212.44f90ada.js"><link rel="prefetch" href="/core/assets/js/213.a89eda29.js"><link rel="prefetch" href="/core/assets/js/214.dd45c706.js"><link rel="prefetch" href="/core/assets/js/215.b26bf12a.js"><link rel="prefetch" href="/core/assets/js/216.19f53d13.js"><link rel="prefetch" href="/core/assets/js/217.5ce458f5.js"><link rel="prefetch" href="/core/assets/js/218.2cbcf469.js"><link rel="prefetch" href="/core/assets/js/219.69e43958.js"><link rel="prefetch" href="/core/assets/js/22.2e923578.js"><link rel="prefetch" href="/core/assets/js/220.4548b0af.js"><link rel="prefetch" href="/core/assets/js/221.aaf36b0d.js"><link rel="prefetch" href="/core/assets/js/222.fd9929a6.js"><link rel="prefetch" href="/core/assets/js/223.67ce0d9e.js"><link rel="prefetch" href="/core/assets/js/224.e108c80b.js"><link rel="prefetch" href="/core/assets/js/225.c46a811b.js"><link rel="prefetch" href="/core/assets/js/226.a3838119.js"><link rel="prefetch" href="/core/assets/js/227.4dee3c11.js"><link rel="prefetch" href="/core/assets/js/228.f3e9a83c.js"><link rel="prefetch" href="/core/assets/js/229.c02570af.js"><link rel="prefetch" href="/core/assets/js/23.212216ed.js"><link rel="prefetch" href="/core/assets/js/230.a757288f.js"><link rel="prefetch" href="/core/assets/js/231.f3624dc7.js"><link rel="prefetch" href="/core/assets/js/232.8c9754e8.js"><link rel="prefetch" href="/core/assets/js/233.1188e414.js"><link rel="prefetch" href="/core/assets/js/234.ee61755b.js"><link rel="prefetch" href="/core/assets/js/235.01985515.js"><link rel="prefetch" href="/core/assets/js/236.a6dcf684.js"><link rel="prefetch" href="/core/assets/js/237.d4ca81d3.js"><link rel="prefetch" href="/core/assets/js/238.eea1fdef.js"><link rel="prefetch" href="/core/assets/js/239.960d2b6c.js"><link rel="prefetch" href="/core/assets/js/24.f6ef14a5.js"><link rel="prefetch" href="/core/assets/js/240.50b63024.js"><link rel="prefetch" href="/core/assets/js/241.8339f304.js"><link rel="prefetch" href="/core/assets/js/242.294dcdda.js"><link rel="prefetch" href="/core/assets/js/243.d7697360.js"><link rel="prefetch" href="/core/assets/js/244.e5adb997.js"><link rel="prefetch" href="/core/assets/js/245.a2d21a7a.js"><link rel="prefetch" href="/core/assets/js/246.7f40ecd9.js"><link rel="prefetch" href="/core/assets/js/247.f83c5dd5.js"><link rel="prefetch" href="/core/assets/js/248.e066c345.js"><link rel="prefetch" href="/core/assets/js/249.2b58ef3a.js"><link rel="prefetch" href="/core/assets/js/25.15297be3.js"><link rel="prefetch" href="/core/assets/js/250.34b09aa7.js"><link rel="prefetch" href="/core/assets/js/251.5d3a31c3.js"><link rel="prefetch" href="/core/assets/js/252.3ac5bcb2.js"><link rel="prefetch" href="/core/assets/js/253.26f6aa33.js"><link rel="prefetch" href="/core/assets/js/254.4a32339a.js"><link rel="prefetch" href="/core/assets/js/255.c40ddb20.js"><link rel="prefetch" href="/core/assets/js/256.6a4df8c6.js"><link rel="prefetch" href="/core/assets/js/257.e493b53f.js"><link rel="prefetch" href="/core/assets/js/258.64237920.js"><link rel="prefetch" href="/core/assets/js/259.f1d25293.js"><link rel="prefetch" href="/core/assets/js/26.c6267eb6.js"><link rel="prefetch" href="/core/assets/js/260.f9df8fb5.js"><link rel="prefetch" href="/core/assets/js/261.e36b8895.js"><link rel="prefetch" href="/core/assets/js/262.23b86376.js"><link rel="prefetch" href="/core/assets/js/263.19132b6c.js"><link rel="prefetch" href="/core/assets/js/264.c94c0415.js"><link rel="prefetch" href="/core/assets/js/265.406b1a84.js"><link rel="prefetch" href="/core/assets/js/266.8ebf3fe7.js"><link rel="prefetch" href="/core/assets/js/267.df029f1c.js"><link rel="prefetch" href="/core/assets/js/268.fdd79640.js"><link rel="prefetch" href="/core/assets/js/269.399b0a71.js"><link rel="prefetch" href="/core/assets/js/27.bf5c47b0.js"><link rel="prefetch" href="/core/assets/js/270.17ae7bf9.js"><link rel="prefetch" href="/core/assets/js/271.d03546d8.js"><link rel="prefetch" href="/core/assets/js/272.6e112358.js"><link rel="prefetch" href="/core/assets/js/273.defa2e65.js"><link rel="prefetch" href="/core/assets/js/274.cb4bbe3e.js"><link rel="prefetch" href="/core/assets/js/275.06ab1c2c.js"><link rel="prefetch" href="/core/assets/js/276.e18d72b9.js"><link rel="prefetch" href="/core/assets/js/277.0ab5844c.js"><link rel="prefetch" href="/core/assets/js/278.8a2df87f.js"><link rel="prefetch" href="/core/assets/js/279.aa4026d6.js"><link rel="prefetch" href="/core/assets/js/28.e17ef571.js"><link rel="prefetch" href="/core/assets/js/280.046467e8.js"><link rel="prefetch" href="/core/assets/js/281.fdd5bd57.js"><link rel="prefetch" href="/core/assets/js/282.9156b90f.js"><link rel="prefetch" href="/core/assets/js/283.42337d20.js"><link rel="prefetch" href="/core/assets/js/284.8e01addf.js"><link rel="prefetch" href="/core/assets/js/285.54dea526.js"><link rel="prefetch" href="/core/assets/js/286.17b75650.js"><link rel="prefetch" href="/core/assets/js/287.314efc5c.js"><link rel="prefetch" href="/core/assets/js/288.ff86d6e9.js"><link rel="prefetch" href="/core/assets/js/289.a1bed3fe.js"><link rel="prefetch" href="/core/assets/js/29.2f1c44cf.js"><link rel="prefetch" href="/core/assets/js/290.0158d692.js"><link rel="prefetch" href="/core/assets/js/291.01603ff1.js"><link rel="prefetch" href="/core/assets/js/292.2acbd1b7.js"><link rel="prefetch" href="/core/assets/js/293.67201815.js"><link rel="prefetch" href="/core/assets/js/294.48bff1b3.js"><link rel="prefetch" href="/core/assets/js/295.ef72845c.js"><link rel="prefetch" href="/core/assets/js/296.5c8a18dc.js"><link rel="prefetch" href="/core/assets/js/297.d0b617fa.js"><link rel="prefetch" href="/core/assets/js/298.1f1c0941.js"><link rel="prefetch" href="/core/assets/js/299.a32adb16.js"><link rel="prefetch" href="/core/assets/js/3.3d7c2d9b.js"><link rel="prefetch" href="/core/assets/js/30.bfb9f265.js"><link rel="prefetch" href="/core/assets/js/300.bccdcdf9.js"><link rel="prefetch" href="/core/assets/js/301.b6508038.js"><link rel="prefetch" href="/core/assets/js/302.6b242eaa.js"><link rel="prefetch" href="/core/assets/js/303.6322b231.js"><link rel="prefetch" href="/core/assets/js/304.4dc9a76f.js"><link rel="prefetch" href="/core/assets/js/305.efa63ddf.js"><link rel="prefetch" href="/core/assets/js/306.9ae11055.js"><link rel="prefetch" href="/core/assets/js/307.6a50372e.js"><link rel="prefetch" href="/core/assets/js/308.2a1788a0.js"><link rel="prefetch" href="/core/assets/js/309.33725f49.js"><link rel="prefetch" href="/core/assets/js/31.97fee83f.js"><link rel="prefetch" href="/core/assets/js/310.7b0f3f1b.js"><link rel="prefetch" href="/core/assets/js/311.800ec7f0.js"><link rel="prefetch" href="/core/assets/js/312.86401737.js"><link rel="prefetch" href="/core/assets/js/313.afc7a90d.js"><link rel="prefetch" href="/core/assets/js/314.22ee4ffc.js"><link rel="prefetch" href="/core/assets/js/315.c4f1e97e.js"><link rel="prefetch" href="/core/assets/js/316.185b9b21.js"><link rel="prefetch" href="/core/assets/js/317.432ba34f.js"><link rel="prefetch" href="/core/assets/js/318.44dc6c1f.js"><link rel="prefetch" href="/core/assets/js/319.3b479406.js"><link rel="prefetch" href="/core/assets/js/32.7f25e75a.js"><link rel="prefetch" href="/core/assets/js/320.29ae991a.js"><link rel="prefetch" href="/core/assets/js/321.c29b715d.js"><link rel="prefetch" href="/core/assets/js/322.ebaf8fd9.js"><link rel="prefetch" href="/core/assets/js/323.a90cc867.js"><link rel="prefetch" href="/core/assets/js/324.bbffd18d.js"><link rel="prefetch" href="/core/assets/js/325.7fda2785.js"><link rel="prefetch" href="/core/assets/js/326.e442948f.js"><link rel="prefetch" href="/core/assets/js/327.ed9c6524.js"><link rel="prefetch" href="/core/assets/js/328.fa72f48a.js"><link rel="prefetch" href="/core/assets/js/329.fda2f67e.js"><link rel="prefetch" href="/core/assets/js/33.de862974.js"><link rel="prefetch" href="/core/assets/js/330.2fd5ee9e.js"><link rel="prefetch" href="/core/assets/js/331.1d992678.js"><link rel="prefetch" href="/core/assets/js/332.5cf893d9.js"><link rel="prefetch" href="/core/assets/js/333.16e25832.js"><link rel="prefetch" href="/core/assets/js/334.a46c4f8b.js"><link rel="prefetch" href="/core/assets/js/335.48929853.js"><link rel="prefetch" href="/core/assets/js/336.f43664f0.js"><link rel="prefetch" href="/core/assets/js/337.d8b9ae89.js"><link rel="prefetch" href="/core/assets/js/338.669893fc.js"><link rel="prefetch" href="/core/assets/js/339.6f855c95.js"><link rel="prefetch" href="/core/assets/js/34.4470ee7f.js"><link rel="prefetch" href="/core/assets/js/340.3e3e5e1f.js"><link rel="prefetch" href="/core/assets/js/341.b0c22e78.js"><link rel="prefetch" href="/core/assets/js/342.e3ac2213.js"><link rel="prefetch" href="/core/assets/js/343.d1ea5a78.js"><link rel="prefetch" href="/core/assets/js/344.6cf236c2.js"><link rel="prefetch" href="/core/assets/js/345.eeb84b40.js"><link rel="prefetch" href="/core/assets/js/346.a129f6b9.js"><link rel="prefetch" href="/core/assets/js/347.acdb0b36.js"><link rel="prefetch" href="/core/assets/js/348.1c6ce982.js"><link rel="prefetch" href="/core/assets/js/349.085f111c.js"><link rel="prefetch" href="/core/assets/js/35.e338784a.js"><link rel="prefetch" href="/core/assets/js/350.91b5e547.js"><link rel="prefetch" href="/core/assets/js/351.f4b3acc3.js"><link rel="prefetch" href="/core/assets/js/352.e9a03332.js"><link rel="prefetch" href="/core/assets/js/353.f3ab70e2.js"><link rel="prefetch" href="/core/assets/js/354.97514a7f.js"><link rel="prefetch" href="/core/assets/js/355.2f5fc2e5.js"><link rel="prefetch" href="/core/assets/js/356.64ef5be4.js"><link rel="prefetch" href="/core/assets/js/357.cb1d36d7.js"><link rel="prefetch" href="/core/assets/js/358.ba0b3701.js"><link rel="prefetch" href="/core/assets/js/359.714a4535.js"><link rel="prefetch" href="/core/assets/js/36.a47d2222.js"><link rel="prefetch" href="/core/assets/js/360.5e90e8fd.js"><link rel="prefetch" href="/core/assets/js/361.68e43d18.js"><link rel="prefetch" href="/core/assets/js/362.22902836.js"><link rel="prefetch" href="/core/assets/js/363.49d4d7d1.js"><link rel="prefetch" href="/core/assets/js/364.4fc382a0.js"><link rel="prefetch" href="/core/assets/js/365.50941aa0.js"><link rel="prefetch" href="/core/assets/js/366.173fa0cb.js"><link rel="prefetch" href="/core/assets/js/367.69e28f81.js"><link rel="prefetch" href="/core/assets/js/368.30a0803c.js"><link rel="prefetch" href="/core/assets/js/369.1f3a48d8.js"><link rel="prefetch" href="/core/assets/js/37.6a6dac9d.js"><link rel="prefetch" href="/core/assets/js/370.2fe8c0f1.js"><link rel="prefetch" href="/core/assets/js/371.70396cc5.js"><link rel="prefetch" href="/core/assets/js/372.a5a7a4c3.js"><link rel="prefetch" href="/core/assets/js/373.e556b461.js"><link rel="prefetch" href="/core/assets/js/374.a75d8afc.js"><link rel="prefetch" href="/core/assets/js/375.5eb116f4.js"><link rel="prefetch" href="/core/assets/js/376.71cdd878.js"><link rel="prefetch" href="/core/assets/js/377.faec922b.js"><link rel="prefetch" href="/core/assets/js/378.02571fc4.js"><link rel="prefetch" href="/core/assets/js/379.bdd9315a.js"><link rel="prefetch" href="/core/assets/js/38.49b7edef.js"><link rel="prefetch" href="/core/assets/js/380.173e46ce.js"><link rel="prefetch" href="/core/assets/js/381.78a87f1f.js"><link rel="prefetch" href="/core/assets/js/382.f171e023.js"><link rel="prefetch" href="/core/assets/js/383.0f10c14d.js"><link rel="prefetch" href="/core/assets/js/384.75593e55.js"><link rel="prefetch" href="/core/assets/js/385.de26509e.js"><link rel="prefetch" href="/core/assets/js/386.a0584bbf.js"><link rel="prefetch" href="/core/assets/js/387.7567d135.js"><link rel="prefetch" href="/core/assets/js/388.dbfb5a5e.js"><link rel="prefetch" href="/core/assets/js/389.6d319d92.js"><link rel="prefetch" href="/core/assets/js/39.5cc7ba58.js"><link rel="prefetch" href="/core/assets/js/390.7b054c3b.js"><link rel="prefetch" href="/core/assets/js/391.6c42013f.js"><link rel="prefetch" href="/core/assets/js/392.99e639b1.js"><link rel="prefetch" href="/core/assets/js/393.554b8814.js"><link rel="prefetch" href="/core/assets/js/394.e004963f.js"><link rel="prefetch" href="/core/assets/js/395.b1739c83.js"><link rel="prefetch" href="/core/assets/js/396.891eb765.js"><link rel="prefetch" href="/core/assets/js/397.72b18c98.js"><link rel="prefetch" href="/core/assets/js/398.bae50545.js"><link rel="prefetch" href="/core/assets/js/399.bdaa0a84.js"><link rel="prefetch" href="/core/assets/js/4.fae4b920.js"><link rel="prefetch" href="/core/assets/js/40.0b768c4d.js"><link rel="prefetch" href="/core/assets/js/400.0d398780.js"><link rel="prefetch" href="/core/assets/js/401.b866c5e8.js"><link rel="prefetch" href="/core/assets/js/402.6f926305.js"><link rel="prefetch" href="/core/assets/js/403.c8399e0c.js"><link rel="prefetch" href="/core/assets/js/404.ec758088.js"><link rel="prefetch" href="/core/assets/js/405.5879df71.js"><link rel="prefetch" href="/core/assets/js/406.29a633a8.js"><link rel="prefetch" href="/core/assets/js/407.bbf08922.js"><link rel="prefetch" href="/core/assets/js/408.6a01eebb.js"><link rel="prefetch" href="/core/assets/js/409.53de6625.js"><link rel="prefetch" href="/core/assets/js/41.7bf49c4d.js"><link rel="prefetch" href="/core/assets/js/410.926dfbb8.js"><link rel="prefetch" href="/core/assets/js/411.14e35130.js"><link rel="prefetch" href="/core/assets/js/412.d6d08aa2.js"><link rel="prefetch" href="/core/assets/js/413.58cb5f5e.js"><link rel="prefetch" href="/core/assets/js/414.cbd9946a.js"><link rel="prefetch" href="/core/assets/js/415.f47a3b99.js"><link rel="prefetch" href="/core/assets/js/416.04f6d0ef.js"><link rel="prefetch" href="/core/assets/js/417.90767a20.js"><link rel="prefetch" href="/core/assets/js/418.619bacbb.js"><link rel="prefetch" href="/core/assets/js/419.51b5a442.js"><link rel="prefetch" href="/core/assets/js/42.5a407187.js"><link rel="prefetch" href="/core/assets/js/420.9232f8b1.js"><link rel="prefetch" href="/core/assets/js/421.1a36f1cc.js"><link rel="prefetch" href="/core/assets/js/422.dbd26c4b.js"><link rel="prefetch" href="/core/assets/js/423.ee1a4039.js"><link rel="prefetch" href="/core/assets/js/424.bdf706ab.js"><link rel="prefetch" href="/core/assets/js/425.72cf0671.js"><link rel="prefetch" href="/core/assets/js/426.c22c6bb3.js"><link rel="prefetch" href="/core/assets/js/427.2ca49d46.js"><link rel="prefetch" href="/core/assets/js/428.1d532362.js"><link rel="prefetch" href="/core/assets/js/429.ac245f0f.js"><link rel="prefetch" href="/core/assets/js/43.e2f7d9e0.js"><link rel="prefetch" href="/core/assets/js/430.026b6b32.js"><link rel="prefetch" href="/core/assets/js/431.5eaf77f7.js"><link rel="prefetch" href="/core/assets/js/432.06d1a7e1.js"><link rel="prefetch" href="/core/assets/js/433.561840f9.js"><link rel="prefetch" href="/core/assets/js/434.0d611979.js"><link rel="prefetch" href="/core/assets/js/435.6e7e5961.js"><link rel="prefetch" href="/core/assets/js/436.799cce41.js"><link rel="prefetch" href="/core/assets/js/437.ecd77b77.js"><link rel="prefetch" href="/core/assets/js/438.70dd490a.js"><link rel="prefetch" href="/core/assets/js/439.d45bf216.js"><link rel="prefetch" href="/core/assets/js/44.43791c1e.js"><link rel="prefetch" href="/core/assets/js/440.44c751fa.js"><link rel="prefetch" href="/core/assets/js/441.9b78599c.js"><link rel="prefetch" href="/core/assets/js/442.a548aef9.js"><link rel="prefetch" href="/core/assets/js/443.6a50ae30.js"><link rel="prefetch" href="/core/assets/js/444.2d906c23.js"><link rel="prefetch" href="/core/assets/js/445.f00de043.js"><link rel="prefetch" href="/core/assets/js/446.2686e9ec.js"><link rel="prefetch" href="/core/assets/js/447.1ba458fb.js"><link rel="prefetch" href="/core/assets/js/448.b72e549d.js"><link rel="prefetch" href="/core/assets/js/449.b83b79d5.js"><link rel="prefetch" href="/core/assets/js/45.26020088.js"><link rel="prefetch" href="/core/assets/js/450.698bf45d.js"><link rel="prefetch" href="/core/assets/js/451.6f7cf7fc.js"><link rel="prefetch" href="/core/assets/js/452.bbd183f8.js"><link rel="prefetch" href="/core/assets/js/453.a4761541.js"><link rel="prefetch" href="/core/assets/js/454.11f0af3e.js"><link rel="prefetch" href="/core/assets/js/455.2b776838.js"><link rel="prefetch" href="/core/assets/js/456.d265df48.js"><link rel="prefetch" href="/core/assets/js/457.66ef5026.js"><link rel="prefetch" href="/core/assets/js/458.eb2d30b2.js"><link rel="prefetch" href="/core/assets/js/459.9447295a.js"><link rel="prefetch" href="/core/assets/js/46.40507459.js"><link rel="prefetch" href="/core/assets/js/460.17b2678e.js"><link rel="prefetch" href="/core/assets/js/461.01607918.js"><link rel="prefetch" href="/core/assets/js/462.df28e52d.js"><link rel="prefetch" href="/core/assets/js/463.acc64ea8.js"><link rel="prefetch" href="/core/assets/js/464.51f8589d.js"><link rel="prefetch" href="/core/assets/js/465.4b150b13.js"><link rel="prefetch" href="/core/assets/js/466.40b2b2cb.js"><link rel="prefetch" href="/core/assets/js/467.8260341f.js"><link rel="prefetch" href="/core/assets/js/468.2522adef.js"><link rel="prefetch" href="/core/assets/js/469.12106a13.js"><link rel="prefetch" href="/core/assets/js/47.15aa0490.js"><link rel="prefetch" href="/core/assets/js/470.471f677b.js"><link rel="prefetch" href="/core/assets/js/471.e1460d36.js"><link rel="prefetch" href="/core/assets/js/472.465bf454.js"><link rel="prefetch" href="/core/assets/js/473.e5bd1c79.js"><link rel="prefetch" href="/core/assets/js/474.19e9deea.js"><link rel="prefetch" href="/core/assets/js/475.26af4d48.js"><link rel="prefetch" href="/core/assets/js/476.87bdecf0.js"><link rel="prefetch" href="/core/assets/js/477.f36f0782.js"><link rel="prefetch" href="/core/assets/js/478.b44b1aa4.js"><link rel="prefetch" href="/core/assets/js/479.018e8db2.js"><link rel="prefetch" href="/core/assets/js/48.5753bdc4.js"><link rel="prefetch" href="/core/assets/js/480.29fe00ad.js"><link rel="prefetch" href="/core/assets/js/481.51e68ec7.js"><link rel="prefetch" href="/core/assets/js/482.9d2c6435.js"><link rel="prefetch" href="/core/assets/js/483.ffb87c39.js"><link rel="prefetch" href="/core/assets/js/484.1fce521a.js"><link rel="prefetch" href="/core/assets/js/485.c2abecd6.js"><link rel="prefetch" href="/core/assets/js/486.31a65df5.js"><link rel="prefetch" href="/core/assets/js/487.2e9ecf12.js"><link rel="prefetch" href="/core/assets/js/488.05eba42c.js"><link rel="prefetch" href="/core/assets/js/489.0316166a.js"><link rel="prefetch" href="/core/assets/js/49.ee0b2313.js"><link rel="prefetch" href="/core/assets/js/490.cc4d1d21.js"><link rel="prefetch" href="/core/assets/js/491.1572b223.js"><link rel="prefetch" href="/core/assets/js/492.a9f7b97e.js"><link rel="prefetch" href="/core/assets/js/493.7d492b9c.js"><link rel="prefetch" href="/core/assets/js/494.28f1f322.js"><link rel="prefetch" href="/core/assets/js/495.b5f6108d.js"><link rel="prefetch" href="/core/assets/js/496.b8ed7b24.js"><link rel="prefetch" href="/core/assets/js/497.8b34eb3c.js"><link rel="prefetch" href="/core/assets/js/498.8d7969fd.js"><link rel="prefetch" href="/core/assets/js/499.c8db34c1.js"><link rel="prefetch" href="/core/assets/js/5.490e7d03.js"><link rel="prefetch" href="/core/assets/js/50.2a42e028.js"><link rel="prefetch" href="/core/assets/js/500.d0e316cf.js"><link rel="prefetch" href="/core/assets/js/501.f6f19ea7.js"><link rel="prefetch" href="/core/assets/js/502.01d8bf2b.js"><link rel="prefetch" href="/core/assets/js/503.cb2f093b.js"><link rel="prefetch" href="/core/assets/js/504.bddadb1c.js"><link rel="prefetch" href="/core/assets/js/505.e1cffe13.js"><link rel="prefetch" href="/core/assets/js/506.6f43ef85.js"><link rel="prefetch" href="/core/assets/js/507.6eed90db.js"><link rel="prefetch" href="/core/assets/js/508.0f667a64.js"><link rel="prefetch" href="/core/assets/js/509.4892c198.js"><link rel="prefetch" href="/core/assets/js/51.66dd4f02.js"><link rel="prefetch" href="/core/assets/js/510.65f38a85.js"><link rel="prefetch" href="/core/assets/js/511.acf055c2.js"><link rel="prefetch" href="/core/assets/js/512.00e25cba.js"><link rel="prefetch" href="/core/assets/js/513.dacc15ec.js"><link rel="prefetch" href="/core/assets/js/514.b2ded0b7.js"><link rel="prefetch" href="/core/assets/js/515.aa6a4609.js"><link rel="prefetch" href="/core/assets/js/516.ded82119.js"><link rel="prefetch" href="/core/assets/js/517.b95486e4.js"><link rel="prefetch" href="/core/assets/js/518.157ad4b2.js"><link rel="prefetch" href="/core/assets/js/519.c690f1a7.js"><link rel="prefetch" href="/core/assets/js/52.800f16d1.js"><link rel="prefetch" href="/core/assets/js/520.7ffe9ffb.js"><link rel="prefetch" href="/core/assets/js/521.bba1c844.js"><link rel="prefetch" href="/core/assets/js/522.20308c6a.js"><link rel="prefetch" href="/core/assets/js/523.f3c7cc8d.js"><link rel="prefetch" href="/core/assets/js/524.57076760.js"><link rel="prefetch" href="/core/assets/js/525.8f1f1566.js"><link rel="prefetch" href="/core/assets/js/526.9f1c78fb.js"><link rel="prefetch" href="/core/assets/js/527.028c61c1.js"><link rel="prefetch" href="/core/assets/js/528.3516e432.js"><link rel="prefetch" href="/core/assets/js/529.6df1ab7b.js"><link rel="prefetch" href="/core/assets/js/53.b645ffea.js"><link rel="prefetch" href="/core/assets/js/530.7d1797d5.js"><link rel="prefetch" href="/core/assets/js/531.8d942a7c.js"><link rel="prefetch" href="/core/assets/js/532.6dbf1a58.js"><link rel="prefetch" href="/core/assets/js/533.2c4059ab.js"><link rel="prefetch" href="/core/assets/js/534.d508aafc.js"><link rel="prefetch" href="/core/assets/js/535.753b4b06.js"><link rel="prefetch" href="/core/assets/js/536.9daa6c7c.js"><link rel="prefetch" href="/core/assets/js/537.579ddd4a.js"><link rel="prefetch" href="/core/assets/js/538.0345bfdc.js"><link rel="prefetch" href="/core/assets/js/539.9b1b5d61.js"><link rel="prefetch" href="/core/assets/js/54.48bd8a32.js"><link rel="prefetch" href="/core/assets/js/540.80ae0da6.js"><link rel="prefetch" href="/core/assets/js/541.0f6e8ff9.js"><link rel="prefetch" href="/core/assets/js/542.455290f6.js"><link rel="prefetch" href="/core/assets/js/543.24776e1d.js"><link rel="prefetch" href="/core/assets/js/544.4b4841c6.js"><link rel="prefetch" href="/core/assets/js/545.b45ffdec.js"><link rel="prefetch" href="/core/assets/js/546.bffd143b.js"><link rel="prefetch" href="/core/assets/js/547.b4ee0205.js"><link rel="prefetch" href="/core/assets/js/548.eb736077.js"><link rel="prefetch" href="/core/assets/js/549.27fabc45.js"><link rel="prefetch" href="/core/assets/js/55.5169f762.js"><link rel="prefetch" href="/core/assets/js/550.38fecce2.js"><link rel="prefetch" href="/core/assets/js/551.a028eaef.js"><link rel="prefetch" href="/core/assets/js/552.8fda7af8.js"><link rel="prefetch" href="/core/assets/js/553.8da0de6e.js"><link rel="prefetch" href="/core/assets/js/554.d58f8e3e.js"><link rel="prefetch" href="/core/assets/js/555.b87ba5a8.js"><link rel="prefetch" href="/core/assets/js/556.d0e07af5.js"><link rel="prefetch" href="/core/assets/js/557.71aa8197.js"><link rel="prefetch" href="/core/assets/js/558.a26b60a5.js"><link rel="prefetch" href="/core/assets/js/559.d5413d3d.js"><link rel="prefetch" href="/core/assets/js/56.6ad437de.js"><link rel="prefetch" href="/core/assets/js/560.ffc79918.js"><link rel="prefetch" href="/core/assets/js/561.d4296891.js"><link rel="prefetch" href="/core/assets/js/562.ef1a2d87.js"><link rel="prefetch" href="/core/assets/js/563.7489ac82.js"><link rel="prefetch" href="/core/assets/js/564.10976d0d.js"><link rel="prefetch" href="/core/assets/js/565.0a72174c.js"><link rel="prefetch" href="/core/assets/js/566.6c3db74c.js"><link rel="prefetch" href="/core/assets/js/567.5b9e74ae.js"><link rel="prefetch" href="/core/assets/js/568.b5511701.js"><link rel="prefetch" href="/core/assets/js/569.7bc34f94.js"><link rel="prefetch" href="/core/assets/js/57.936ea976.js"><link rel="prefetch" href="/core/assets/js/570.1adc16af.js"><link rel="prefetch" href="/core/assets/js/571.2f699f17.js"><link rel="prefetch" href="/core/assets/js/572.60619312.js"><link rel="prefetch" href="/core/assets/js/573.2dface59.js"><link rel="prefetch" href="/core/assets/js/574.cd47c677.js"><link rel="prefetch" href="/core/assets/js/575.a3173558.js"><link rel="prefetch" href="/core/assets/js/576.3f201090.js"><link rel="prefetch" href="/core/assets/js/577.1945b77f.js"><link rel="prefetch" href="/core/assets/js/578.6447e24a.js"><link rel="prefetch" href="/core/assets/js/579.7f2f4dfe.js"><link rel="prefetch" href="/core/assets/js/58.c1977bd4.js"><link rel="prefetch" href="/core/assets/js/580.a80fea2a.js"><link rel="prefetch" href="/core/assets/js/581.2e26b691.js"><link rel="prefetch" href="/core/assets/js/582.59dcadc3.js"><link rel="prefetch" href="/core/assets/js/583.10bc5252.js"><link rel="prefetch" href="/core/assets/js/584.f41e3951.js"><link rel="prefetch" href="/core/assets/js/585.24791ca0.js"><link rel="prefetch" href="/core/assets/js/586.9edd8363.js"><link rel="prefetch" href="/core/assets/js/587.0c53e4db.js"><link rel="prefetch" href="/core/assets/js/588.9379743a.js"><link rel="prefetch" href="/core/assets/js/589.032339a2.js"><link rel="prefetch" href="/core/assets/js/59.ddc2dfa5.js"><link rel="prefetch" href="/core/assets/js/590.9187dec2.js"><link rel="prefetch" href="/core/assets/js/591.38337c10.js"><link rel="prefetch" href="/core/assets/js/592.b694b5ea.js"><link rel="prefetch" href="/core/assets/js/593.9b2ab200.js"><link rel="prefetch" href="/core/assets/js/594.7dec44b6.js"><link rel="prefetch" href="/core/assets/js/595.fa2fd76b.js"><link rel="prefetch" href="/core/assets/js/596.5a12c604.js"><link rel="prefetch" href="/core/assets/js/597.b4051399.js"><link rel="prefetch" href="/core/assets/js/598.fdfb967c.js"><link rel="prefetch" href="/core/assets/js/599.5496769d.js"><link rel="prefetch" href="/core/assets/js/6.9c0c1155.js"><link rel="prefetch" href="/core/assets/js/60.50f9c204.js"><link rel="prefetch" href="/core/assets/js/600.d6203866.js"><link rel="prefetch" href="/core/assets/js/601.0e1a76cb.js"><link rel="prefetch" href="/core/assets/js/602.6a41cd14.js"><link rel="prefetch" href="/core/assets/js/603.ca1cf084.js"><link rel="prefetch" href="/core/assets/js/604.2e7b185f.js"><link rel="prefetch" href="/core/assets/js/605.0ee66dfd.js"><link rel="prefetch" href="/core/assets/js/606.564a90d8.js"><link rel="prefetch" href="/core/assets/js/607.54cef73e.js"><link rel="prefetch" href="/core/assets/js/608.5186a025.js"><link rel="prefetch" href="/core/assets/js/609.bd697f36.js"><link rel="prefetch" href="/core/assets/js/61.48088f2c.js"><link rel="prefetch" href="/core/assets/js/610.5feaa9cf.js"><link rel="prefetch" href="/core/assets/js/611.f689421e.js"><link rel="prefetch" href="/core/assets/js/612.9b9f1859.js"><link rel="prefetch" href="/core/assets/js/613.fc3e4b68.js"><link rel="prefetch" href="/core/assets/js/614.52ab6894.js"><link rel="prefetch" href="/core/assets/js/615.18b77691.js"><link rel="prefetch" href="/core/assets/js/616.7167757a.js"><link rel="prefetch" href="/core/assets/js/617.56206d6e.js"><link rel="prefetch" href="/core/assets/js/618.1978d57a.js"><link rel="prefetch" href="/core/assets/js/619.42f0b0f0.js"><link rel="prefetch" href="/core/assets/js/62.55ec79f3.js"><link rel="prefetch" href="/core/assets/js/620.4c8ad654.js"><link rel="prefetch" href="/core/assets/js/621.b61b0d82.js"><link rel="prefetch" href="/core/assets/js/622.27bfe206.js"><link rel="prefetch" href="/core/assets/js/623.2df86be9.js"><link rel="prefetch" href="/core/assets/js/624.faa7fbe5.js"><link rel="prefetch" href="/core/assets/js/625.9436b500.js"><link rel="prefetch" href="/core/assets/js/626.0f130653.js"><link rel="prefetch" href="/core/assets/js/627.bb8ffd2e.js"><link rel="prefetch" href="/core/assets/js/628.8d3b7aa3.js"><link rel="prefetch" href="/core/assets/js/629.39f851fe.js"><link rel="prefetch" href="/core/assets/js/63.c50bf0fb.js"><link rel="prefetch" href="/core/assets/js/630.4a4cd8c0.js"><link rel="prefetch" href="/core/assets/js/631.d999b44d.js"><link rel="prefetch" href="/core/assets/js/632.aec34989.js"><link rel="prefetch" href="/core/assets/js/633.d5cd07ba.js"><link rel="prefetch" href="/core/assets/js/634.ef234f97.js"><link rel="prefetch" href="/core/assets/js/635.d29e16a3.js"><link rel="prefetch" href="/core/assets/js/636.6718d4e5.js"><link rel="prefetch" href="/core/assets/js/637.af120e6f.js"><link rel="prefetch" href="/core/assets/js/638.92103c80.js"><link rel="prefetch" href="/core/assets/js/639.c464bc07.js"><link rel="prefetch" href="/core/assets/js/64.a71c3474.js"><link rel="prefetch" href="/core/assets/js/640.06f1b6dc.js"><link rel="prefetch" href="/core/assets/js/641.971bcb51.js"><link rel="prefetch" href="/core/assets/js/642.14c6f0d8.js"><link rel="prefetch" href="/core/assets/js/643.241ef561.js"><link rel="prefetch" href="/core/assets/js/644.e48f735e.js"><link rel="prefetch" href="/core/assets/js/645.3ed8c62b.js"><link rel="prefetch" href="/core/assets/js/646.0bd979d8.js"><link rel="prefetch" href="/core/assets/js/647.21b087bd.js"><link rel="prefetch" href="/core/assets/js/648.9cb69c7b.js"><link rel="prefetch" href="/core/assets/js/649.f62f1839.js"><link rel="prefetch" href="/core/assets/js/65.e9cf7750.js"><link rel="prefetch" href="/core/assets/js/650.91568627.js"><link rel="prefetch" href="/core/assets/js/651.43a0d3c8.js"><link rel="prefetch" href="/core/assets/js/652.d69326d5.js"><link rel="prefetch" href="/core/assets/js/653.ac1dd2a3.js"><link rel="prefetch" href="/core/assets/js/654.398043da.js"><link rel="prefetch" href="/core/assets/js/655.8ae8ef1a.js"><link rel="prefetch" href="/core/assets/js/656.02fbc602.js"><link rel="prefetch" href="/core/assets/js/657.b3272058.js"><link rel="prefetch" href="/core/assets/js/658.816d4f1d.js"><link rel="prefetch" href="/core/assets/js/659.82cd31d0.js"><link rel="prefetch" href="/core/assets/js/66.76941576.js"><link rel="prefetch" href="/core/assets/js/660.03bca65d.js"><link rel="prefetch" href="/core/assets/js/661.d54327bf.js"><link rel="prefetch" href="/core/assets/js/662.bd1eaed6.js"><link rel="prefetch" href="/core/assets/js/663.7d2f7266.js"><link rel="prefetch" href="/core/assets/js/664.3c70ad06.js"><link rel="prefetch" href="/core/assets/js/665.31365970.js"><link rel="prefetch" href="/core/assets/js/666.bcfa9f94.js"><link rel="prefetch" href="/core/assets/js/667.596b5529.js"><link rel="prefetch" href="/core/assets/js/668.91b15f9d.js"><link rel="prefetch" href="/core/assets/js/669.6d6e559b.js"><link rel="prefetch" href="/core/assets/js/67.f6a1e01b.js"><link rel="prefetch" href="/core/assets/js/670.57b93e44.js"><link rel="prefetch" href="/core/assets/js/671.49979b4d.js"><link rel="prefetch" href="/core/assets/js/672.214728be.js"><link rel="prefetch" href="/core/assets/js/673.4dae610a.js"><link rel="prefetch" href="/core/assets/js/674.9f00c44e.js"><link rel="prefetch" href="/core/assets/js/675.85256518.js"><link rel="prefetch" href="/core/assets/js/676.f80d6cda.js"><link rel="prefetch" href="/core/assets/js/677.cb171bef.js"><link rel="prefetch" href="/core/assets/js/678.560d5a00.js"><link rel="prefetch" href="/core/assets/js/679.116350be.js"><link rel="prefetch" href="/core/assets/js/68.e88b7b7d.js"><link rel="prefetch" href="/core/assets/js/680.0f889f16.js"><link rel="prefetch" href="/core/assets/js/681.9855b5b4.js"><link rel="prefetch" href="/core/assets/js/682.827e1853.js"><link rel="prefetch" href="/core/assets/js/683.20dfa699.js"><link rel="prefetch" href="/core/assets/js/684.f74f18ba.js"><link rel="prefetch" href="/core/assets/js/685.eb2556ee.js"><link rel="prefetch" href="/core/assets/js/686.87261c97.js"><link rel="prefetch" href="/core/assets/js/687.813cb4dc.js"><link rel="prefetch" href="/core/assets/js/688.28893a53.js"><link rel="prefetch" href="/core/assets/js/689.682c82b1.js"><link rel="prefetch" href="/core/assets/js/69.50cced43.js"><link rel="prefetch" href="/core/assets/js/690.9e55a039.js"><link rel="prefetch" href="/core/assets/js/691.73c9b3ca.js"><link rel="prefetch" href="/core/assets/js/692.a98fba9a.js"><link rel="prefetch" href="/core/assets/js/693.910f19cd.js"><link rel="prefetch" href="/core/assets/js/694.7975854f.js"><link rel="prefetch" href="/core/assets/js/695.dacf92d6.js"><link rel="prefetch" href="/core/assets/js/696.8383796c.js"><link rel="prefetch" href="/core/assets/js/697.d6d6c356.js"><link rel="prefetch" href="/core/assets/js/698.b64e371c.js"><link rel="prefetch" href="/core/assets/js/699.22a59659.js"><link rel="prefetch" href="/core/assets/js/7.986405e0.js"><link rel="prefetch" href="/core/assets/js/70.c56a762f.js"><link rel="prefetch" href="/core/assets/js/700.4b4b6c59.js"><link rel="prefetch" href="/core/assets/js/701.982caf6c.js"><link rel="prefetch" href="/core/assets/js/702.c31ec6c6.js"><link rel="prefetch" href="/core/assets/js/703.cebf591a.js"><link rel="prefetch" href="/core/assets/js/704.17aa641d.js"><link rel="prefetch" href="/core/assets/js/705.55c7fb99.js"><link rel="prefetch" href="/core/assets/js/706.00785ce3.js"><link rel="prefetch" href="/core/assets/js/707.5815dc51.js"><link rel="prefetch" href="/core/assets/js/708.53fe2f1c.js"><link rel="prefetch" href="/core/assets/js/709.39f47393.js"><link rel="prefetch" href="/core/assets/js/71.36f6b6a5.js"><link rel="prefetch" href="/core/assets/js/710.e73bf25f.js"><link rel="prefetch" href="/core/assets/js/711.e8ef5a25.js"><link rel="prefetch" href="/core/assets/js/72.0f877975.js"><link rel="prefetch" href="/core/assets/js/73.524744c8.js"><link rel="prefetch" href="/core/assets/js/74.3470ce9f.js"><link rel="prefetch" href="/core/assets/js/75.b1e13525.js"><link rel="prefetch" href="/core/assets/js/76.6e42e70a.js"><link rel="prefetch" href="/core/assets/js/77.1871d28d.js"><link rel="prefetch" href="/core/assets/js/78.99660e68.js"><link rel="prefetch" href="/core/assets/js/79.0ed90285.js"><link rel="prefetch" href="/core/assets/js/8.4b66baff.js"><link rel="prefetch" href="/core/assets/js/80.54fc2160.js"><link rel="prefetch" href="/core/assets/js/81.5b4ac809.js"><link rel="prefetch" href="/core/assets/js/82.c95f1023.js"><link rel="prefetch" href="/core/assets/js/83.c68cde99.js"><link rel="prefetch" href="/core/assets/js/84.4b68579b.js"><link rel="prefetch" href="/core/assets/js/85.8d03f485.js"><link rel="prefetch" href="/core/assets/js/86.58b4e737.js"><link rel="prefetch" href="/core/assets/js/87.01b95000.js"><link rel="prefetch" href="/core/assets/js/88.9d6fd4ec.js"><link rel="prefetch" href="/core/assets/js/89.6cfcdf2a.js"><link rel="prefetch" href="/core/assets/js/9.4ed67186.js"><link rel="prefetch" href="/core/assets/js/90.efeb4258.js"><link rel="prefetch" href="/core/assets/js/91.0e38f9f4.js"><link rel="prefetch" href="/core/assets/js/92.b6464df2.js"><link rel="prefetch" href="/core/assets/js/93.f8d346fd.js"><link rel="prefetch" href="/core/assets/js/94.7e395b02.js"><link rel="prefetch" href="/core/assets/js/95.8504ff77.js"><link rel="prefetch" href="/core/assets/js/96.0cc2c0f2.js"><link rel="prefetch" href="/core/assets/js/97.086c884d.js"><link rel="prefetch" href="/core/assets/js/98.a8d395f3.js"><link rel="prefetch" href="/core/assets/js/99.d7dec09e.js">
    <link rel="stylesheet" href="/core/assets/css/0.styles.9fa494bc.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/core/" class="home-link router-link-active"><!----> <span class="site-name">Code(超脱)</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Lang(希言自然)" class="dropdown-title"><span class="title">Lang(希言自然)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch2-cmd/" class="nav-link">
  Cmd
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch3-oop/" class="nav-link">
  Oop
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch4-func/" class="nav-link">
  Func
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch5-cxx/" class="nav-link">
  Cxx
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch6-jvm/" class="nav-link">
  Jvm
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch7-v8/" class="nav-link">
  V8
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Sys(莫向外求)" class="dropdown-title"><span class="title">Sys(莫向外求)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch1-kernel/" class="nav-link">
  Kernel
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch2-os/" class="nav-link">
  Os
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch3-browser/" class="nav-link">
  Browser
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch4-media/" class="nav-link">
  Media
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch5-engine/" class="nav-link">
  Engine
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch6-client/" class="nav-link">
  Client
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Db(不忘沟壑)" class="dropdown-title"><span class="title">Db(不忘沟壑)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch2-pool/" class="nav-link">
  Pool
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch3-cache/" class="nav-link">
  Cache
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch4-relational/" class="nav-link">
  Relational
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch5-nosql/" class="nav-link">
  Nosql
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch6-shard/" class="nav-link">
  Shard
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch7-newsql/" class="nav-link">
  Newsql
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch8-search/" class="nav-link">
  Search
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Net(大开大合)" class="dropdown-title"><span class="title">Net(大开大合)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch2-io/" class="nav-link">
  Io
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch3-serialize/" class="nav-link">
  Serialize
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch4-rpc/" class="nav-link">
  Rpc
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch5-server/" class="nav-link router-link-active">
  Server
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch6-client/" class="nav-link">
  Client
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch7-social/" class="nav-link">
  Social
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Bc(当仁不让)" class="dropdown-title"><span class="title">Bc(当仁不让)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.0-9.bc/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-9.bc/ch2-chain/" class="nav-link">
  Chain
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-9.bc/ch3-coin/" class="nav-link">
  Coin
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-9.bc/ch4-wallet/" class="nav-link">
  Wallet
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-9.bc/ch5-social/" class="nav-link">
  Social
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Devops(化零为整)" class="dropdown-title"><span class="title">Devops(化零为整)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch1-ide/" class="nav-link">
  Ide
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch2-plugin/" class="nav-link">
  Plugin
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch3-version/" class="nav-link">
  Version
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch4-pkg/" class="nav-link">
  Pkg
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch5-deploy/" class="nav-link">
  Deploy
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch6-doc/" class="nav-link">
  Doc
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch7-testing/" class="nav-link">
  Testing
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch8-monitor/" class="nav-link">
  Monitor
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch9-defense/" class="nav-link">
  Defense
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Utils(气冲斗牛)" class="dropdown-title"><span class="title">Utils(气冲斗牛)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch1-libs/" class="nav-link">
  Libs
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch2-bytecode/" class="nav-link">
  Bytecode
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch3-concurrent/" class="nav-link">
  Concurrent
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch4-orm/" class="nav-link">
  Orm
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch5-logging/" class="nav-link">
  Logging
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch6-template/" class="nav-link">
  Template
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch7-math/" class="nav-link">
  Math
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch8-office/" class="nav-link">
  Office
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch9-security/" class="nav-link">
  Security
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Spring(精益求精)" class="dropdown-title"><span class="title">Spring(精益求精)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch1-arch/" class="nav-link">
  Arch
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch2-mvc/" class="nav-link">
  Mvc
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch3-web/" class="nav-link">
  Web
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch4-data/" class="nav-link">
  Data
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch5-security/" class="nav-link">
  Security
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch6-boot/" class="nav-link">
  Boot
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Micro(见微知著)" class="dropdown-title"><span class="title">Micro(见微知著)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch1-arch/" class="nav-link">
  Arch
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch2-reg/" class="nav-link">
  Reg
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch3-conf/" class="nav-link">
  Conf
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch4-mq/" class="nav-link">
  Mq
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch5-gw/" class="nav-link">
  Gw
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch6-lb/" class="nav-link">
  Lb
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch7-tx/" class="nav-link">
  Tx
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch8-job/" class="nav-link">
  Job
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Cloud(云蒸霞蔚)" class="dropdown-title"><span class="title">Cloud(云蒸霞蔚)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch1-vm/" class="nav-link">
  Vm
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch2-cntr/" class="nav-link">
  Cntr
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch3-mesh/" class="nav-link">
  Mesh
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch4-iaas/" class="nav-link">
  Iaas
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch5-paas/" class="nav-link">
  Paas
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch6-saas/" class="nav-link">
  Saas
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch7-faas/" class="nav-link">
  Faas
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Spa(破而后立)" class="dropdown-title"><span class="title">Spa(破而后立)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch1-design/" class="nav-link">
  Design
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch2-mvc/" class="nav-link">
  Mvc
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch3-module/" class="nav-link">
  Module
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch4-state/" class="nav-link">
  State
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch5-template/" class="nav-link">
  Template
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch6-styling/" class="nav-link">
  Styling
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch7-router/" class="nav-link">
  Router
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch8-request/" class="nav-link">
  Request
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Ui(气象万千)" class="dropdown-title"><span class="title">Ui(气象万千)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch1-design/" class="nav-link">
  Design
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch2-model/" class="nav-link">
  Model
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch3-effect/" class="nav-link">
  Effect
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch4-layout/" class="nav-link">
  Layout
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch5-toolbox/" class="nav-link">
  Toolbox
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch6-classic/" class="nav-link">
  Classic
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch7-mobile/" class="nav-link">
  Mobile
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Scaffold(循序渐进)" class="dropdown-title"><span class="title">Scaffold(循序渐进)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch2-universal/" class="nav-link">
  Universal
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch3-custom/" class="nav-link">
  Custom
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch4-hybird/" class="nav-link">
  Hybird
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch5-micro/" class="nav-link">
  Micro
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch6-material/" class="nav-link">
  Material
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch7-lowcode/" class="nav-link">
  Lowcode
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Analysis(条分缕析)" class="dropdown-title"><span class="title">Analysis(条分缕析)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch1-libs/" class="nav-link">
  Libs
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch2-spider/" class="nav-link">
  Spider
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch3-clean/" class="nav-link">
  Clean
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch4-math/" class="nav-link">
  Math
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch5-model/" class="nav-link">
  Model
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch6-visual/" class="nav-link">
  Visual
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch7-office/" class="nav-link">
  Office
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Bigdata(恒河沙数)" class="dropdown-title"><span class="title">Bigdata(恒河沙数)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch1-arch/" class="nav-link">
  Arch
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch2-collect/" class="nav-link">
  Collect
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch3-storage/" class="nav-link">
  Storage
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch4-manage/" class="nav-link">
  Manage
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch5-compute/" class="nav-link">
  Compute
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch6-schedule/" class="nav-link">
  Schedule
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Ai(大智若愚)" class="dropdown-title"><span class="title">Ai(大智若愚)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch2-machine/" class="nav-link">
  Machine
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch3-senses/" class="nav-link">
  Senses
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch4-lang/" class="nav-link">
  Lang
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch5-robot/" class="nav-link">
  Robot
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch6-auto/" class="nav-link">
  Auto
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch7-wisdom/" class="nav-link">
  Wisdom
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="导航" class="dropdown-title"><span class="title">导航</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="http://luo0412.gitee.io/note" target="_blank" rel="noopener noreferrer" class="nav-link external">
  开发索引(Idx)
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a href="http://luo0412.gitee.io/planb" target="_blank" rel="noopener noreferrer" class="nav-link external">
  避险计划(Pb)
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a href="http://luo0412.gitee.io/core" target="_blank" rel="noopener noreferrer" class="nav-link external">
  源码解析(C)
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a href="http://luo0412.gitee.io/arch" target="_blank" rel="noopener noreferrer" class="nav-link external">
  技术演进(A)
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="关于" class="dropdown-title"><span class="title">关于</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/inspired-by.html" class="nav-link">
  笔记灵感
</a></li><li class="dropdown-item"><!----> <a href="/core/md-style.html" class="nav-link">
  书写风格
</a></li><li class="dropdown-item"><!----> <a href="/core/about-me.html" class="nav-link">
  人生奥义
</a></li><li class="dropdown-item"><!----> <a href="/core/related-links.html" class="nav-link">
  相关链接
</a></li></ul></div></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Lang(希言自然)" class="dropdown-title"><span class="title">Lang(希言自然)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch2-cmd/" class="nav-link">
  Cmd
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch3-oop/" class="nav-link">
  Oop
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch4-func/" class="nav-link">
  Func
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch5-cxx/" class="nav-link">
  Cxx
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch6-jvm/" class="nav-link">
  Jvm
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-2.lang/ch7-v8/" class="nav-link">
  V8
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Sys(莫向外求)" class="dropdown-title"><span class="title">Sys(莫向外求)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch1-kernel/" class="nav-link">
  Kernel
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch2-os/" class="nav-link">
  Os
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch3-browser/" class="nav-link">
  Browser
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch4-media/" class="nav-link">
  Media
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch5-engine/" class="nav-link">
  Engine
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-5.sys/ch6-client/" class="nav-link">
  Client
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Db(不忘沟壑)" class="dropdown-title"><span class="title">Db(不忘沟壑)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch2-pool/" class="nav-link">
  Pool
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch3-cache/" class="nav-link">
  Cache
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch4-relational/" class="nav-link">
  Relational
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch5-nosql/" class="nav-link">
  Nosql
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch6-shard/" class="nav-link">
  Shard
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch7-newsql/" class="nav-link">
  Newsql
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-6.db/ch8-search/" class="nav-link">
  Search
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Net(大开大合)" class="dropdown-title"><span class="title">Net(大开大合)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch2-io/" class="nav-link">
  Io
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch3-serialize/" class="nav-link">
  Serialize
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch4-rpc/" class="nav-link">
  Rpc
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch5-server/" class="nav-link router-link-active">
  Server
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch6-client/" class="nav-link">
  Client
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-8.net/ch7-social/" class="nav-link">
  Social
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Bc(当仁不让)" class="dropdown-title"><span class="title">Bc(当仁不让)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.0-9.bc/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-9.bc/ch2-chain/" class="nav-link">
  Chain
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-9.bc/ch3-coin/" class="nav-link">
  Coin
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-9.bc/ch4-wallet/" class="nav-link">
  Wallet
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.0-9.bc/ch5-social/" class="nav-link">
  Social
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Devops(化零为整)" class="dropdown-title"><span class="title">Devops(化零为整)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch1-ide/" class="nav-link">
  Ide
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch2-plugin/" class="nav-link">
  Plugin
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch3-version/" class="nav-link">
  Version
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch4-pkg/" class="nav-link">
  Pkg
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch5-deploy/" class="nav-link">
  Deploy
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch6-doc/" class="nav-link">
  Doc
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch7-testing/" class="nav-link">
  Testing
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch8-monitor/" class="nav-link">
  Monitor
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.1-6.devops/ch9-defense/" class="nav-link">
  Defense
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Utils(气冲斗牛)" class="dropdown-title"><span class="title">Utils(气冲斗牛)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch1-libs/" class="nav-link">
  Libs
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch2-bytecode/" class="nav-link">
  Bytecode
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch3-concurrent/" class="nav-link">
  Concurrent
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch4-orm/" class="nav-link">
  Orm
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch5-logging/" class="nav-link">
  Logging
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch6-template/" class="nav-link">
  Template
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch7-math/" class="nav-link">
  Math
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch8-office/" class="nav-link">
  Office
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-2.utils/ch9-security/" class="nav-link">
  Security
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Spring(精益求精)" class="dropdown-title"><span class="title">Spring(精益求精)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch1-arch/" class="nav-link">
  Arch
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch2-mvc/" class="nav-link">
  Mvc
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch3-web/" class="nav-link">
  Web
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch4-data/" class="nav-link">
  Data
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch5-security/" class="nav-link">
  Security
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-3.spring/ch6-boot/" class="nav-link">
  Boot
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Micro(见微知著)" class="dropdown-title"><span class="title">Micro(见微知著)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch1-arch/" class="nav-link">
  Arch
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch2-reg/" class="nav-link">
  Reg
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch3-conf/" class="nav-link">
  Conf
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch4-mq/" class="nav-link">
  Mq
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch5-gw/" class="nav-link">
  Gw
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch6-lb/" class="nav-link">
  Lb
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch7-tx/" class="nav-link">
  Tx
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-4.micro/ch8-job/" class="nav-link">
  Job
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Cloud(云蒸霞蔚)" class="dropdown-title"><span class="title">Cloud(云蒸霞蔚)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch1-vm/" class="nav-link">
  Vm
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch2-cntr/" class="nav-link">
  Cntr
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch3-mesh/" class="nav-link">
  Mesh
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch4-iaas/" class="nav-link">
  Iaas
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch5-paas/" class="nav-link">
  Paas
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch6-saas/" class="nav-link">
  Saas
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.3-6.cloud/ch7-faas/" class="nav-link">
  Faas
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Spa(破而后立)" class="dropdown-title"><span class="title">Spa(破而后立)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch1-design/" class="nav-link">
  Design
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch2-mvc/" class="nav-link">
  Mvc
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch3-module/" class="nav-link">
  Module
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch4-state/" class="nav-link">
  State
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch5-template/" class="nav-link">
  Template
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch6-styling/" class="nav-link">
  Styling
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch7-router/" class="nav-link">
  Router
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.spa/ch8-request/" class="nav-link">
  Request
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Ui(气象万千)" class="dropdown-title"><span class="title">Ui(气象万千)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch1-design/" class="nav-link">
  Design
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch2-model/" class="nav-link">
  Model
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch3-effect/" class="nav-link">
  Effect
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch4-layout/" class="nav-link">
  Layout
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch5-toolbox/" class="nav-link">
  Toolbox
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch6-classic/" class="nav-link">
  Classic
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-2.ui/ch7-mobile/" class="nav-link">
  Mobile
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Scaffold(循序渐进)" class="dropdown-title"><span class="title">Scaffold(循序渐进)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch2-universal/" class="nav-link">
  Universal
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch3-custom/" class="nav-link">
  Custom
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch4-hybird/" class="nav-link">
  Hybird
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch5-micro/" class="nav-link">
  Micro
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch6-material/" class="nav-link">
  Material
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.4-5.scaffold/ch7-lowcode/" class="nav-link">
  Lowcode
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Analysis(条分缕析)" class="dropdown-title"><span class="title">Analysis(条分缕析)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch1-libs/" class="nav-link">
  Libs
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch2-spider/" class="nav-link">
  Spider
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch3-clean/" class="nav-link">
  Clean
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch4-math/" class="nav-link">
  Math
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch5-model/" class="nav-link">
  Model
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch6-visual/" class="nav-link">
  Visual
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.analysis/ch7-office/" class="nav-link">
  Office
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Bigdata(恒河沙数)" class="dropdown-title"><span class="title">Bigdata(恒河沙数)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch1-arch/" class="nav-link">
  Arch
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch2-collect/" class="nav-link">
  Collect
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch3-storage/" class="nav-link">
  Storage
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch4-manage/" class="nav-link">
  Manage
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch5-compute/" class="nav-link">
  Compute
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-4.bigdata/ch6-schedule/" class="nav-link">
  Schedule
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Ai(大智若愚)" class="dropdown-title"><span class="title">Ai(大智若愚)</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch1-basics/" class="nav-link">
  Basics
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch2-machine/" class="nav-link">
  Machine
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch3-senses/" class="nav-link">
  Senses
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch4-lang/" class="nav-link">
  Lang
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch5-robot/" class="nav-link">
  Robot
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch6-auto/" class="nav-link">
  Auto
</a></li><li class="dropdown-item"><!----> <a href="/core/nav.5-6.ai/ch7-wisdom/" class="nav-link">
  Wisdom
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="导航" class="dropdown-title"><span class="title">导航</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="http://luo0412.gitee.io/note" target="_blank" rel="noopener noreferrer" class="nav-link external">
  开发索引(Idx)
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a href="http://luo0412.gitee.io/planb" target="_blank" rel="noopener noreferrer" class="nav-link external">
  避险计划(Pb)
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a href="http://luo0412.gitee.io/core" target="_blank" rel="noopener noreferrer" class="nav-link external">
  源码解析(C)
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a href="http://luo0412.gitee.io/arch" target="_blank" rel="noopener noreferrer" class="nav-link external">
  技术演进(A)
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="关于" class="dropdown-title"><span class="title">关于</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/core/inspired-by.html" class="nav-link">
  笔记灵感
</a></li><li class="dropdown-item"><!----> <a href="/core/md-style.html" class="nav-link">
  书写风格
</a></li><li class="dropdown-item"><!----> <a href="/core/about-me.html" class="nav-link">
  人生奥义
</a></li><li class="dropdown-item"><!----> <a href="/core/related-links.html" class="nav-link">
  相关链接
</a></li></ul></div></div> <!----></nav>  <ul class="sidebar-links"><li><a href="/core/nav.0-8.net/ch5-server/" aria-current="page" class="sidebar-link">README</a></li><li><a href="/core/nav.0-8.net/ch5-server/01-8301304864264822.html" class="sidebar-link">[方案]造一个Web服务器</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Misc</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/core/nav.0-8.net/ch5-server/misc/02-3846065523667724.html" class="sidebar-link">[源码]express</a></li><li><a href="/core/nav.0-8.net/ch5-server/misc/03-7276105383436481.html" class="sidebar-link">[源码]koa</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Nginx</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/core/nav.0-8.net/ch5-server/nginx/01-5989431279961056.html" class="sidebar-link">[原理]Nginx</a></li><li><a href="/core/nav.0-8.net/ch5-server/nginx/02-6192215940644933.html" aria-current="page" class="active sidebar-link">[Note]Nginx高性能Web服务器详解</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Tomcat</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/core/nav.0-8.net/ch5-server/tomcat/01-7351274656342609.html" class="sidebar-link">[源码]Tomcat</a></li><li><a href="/core/nav.0-8.net/ch5-server/tomcat/02-8406897913984896.html" class="sidebar-link">[Note]Tomcat内核设计与剖析(v7.x)</a></li><li><a href="/core/nav.0-8.net/ch5-server/tomcat/03-1399473163197950.html" class="sidebar-link">[Note]深入剖析Tomcat</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="note-nginx高性能web服务器详解"><a href="#note-nginx高性能web服务器详解" class="header-anchor">#</a> [Note]Nginx高性能Web服务器详解</h1> <ul><li>@doc <a href="https://weread.qq.com/web/reader/e8d3200059fb19e8d3b2af6" target="_blank" rel="noopener noreferrer">https://weread.qq.com/web/reader/e8d3200059fb19e8d3b2af6<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul> <hr> <h1 id="前言"><a href="#前言" class="header-anchor">#</a> 前言</h1> <h1 id="第1章-nginx初探"><a href="#第1章-nginx初探" class="header-anchor">#</a> 第1章 Nginx初探</h1> <h1 id="_1-1-nginx的历史"><a href="#_1-1-nginx的历史" class="header-anchor">#</a> 1.1 Nginx的历史</h1> <h1 id="_1-2-常见服务器产品介绍"><a href="#_1-2-常见服务器产品介绍" class="header-anchor">#</a> 1.2 常见服务器产品介绍</h1> <h1 id="_1-2-1-apache服务器"><a href="#_1-2-1-apache服务器" class="header-anchor">#</a> 1.2.1 Apache服务器</h1> <h1 id="_1-2-2-microsoft-iis"><a href="#_1-2-2-microsoft-iis" class="header-anchor">#</a> 1.2.2 Microsoft IIS</h1> <h1 id="_1-2-3-tomcat服务器"><a href="#_1-2-3-tomcat服务器" class="header-anchor">#</a> 1.2.3 Tomcat服务器</h1> <h1 id="_1-2-4-lighttpd服务器"><a href="#_1-2-4-lighttpd服务器" class="header-anchor">#</a> 1.2.4 Lighttpd服务器</h1> <h1 id="_1-2-5-nginx诞生记"><a href="#_1-2-5-nginx诞生记" class="header-anchor">#</a> 1.2.5 Nginx诞生记</h1> <h1 id="_1-2-6-版本变更大事记"><a href="#_1-2-6-版本变更大事记" class="header-anchor">#</a> 1.2.6 版本变更大事记</h1> <h1 id="_1-3-nginx的功能特性"><a href="#_1-3-nginx的功能特性" class="header-anchor">#</a> 1.3 Nginx的功能特性</h1> <h1 id="_1-3-1-基本http服务"><a href="#_1-3-1-基本http服务" class="header-anchor">#</a> 1.3.1 基本HTTP服务</h1> <h1 id="_1-3-2-高级http服务"><a href="#_1-3-2-高级http服务" class="header-anchor">#</a> 1.3.2 高级HTTP服务</h1> <h1 id="_1-3-3-邮件代理服务"><a href="#_1-3-3-邮件代理服务" class="header-anchor">#</a> 1.3.3 邮件代理服务</h1> <h1 id="_1-4-常用功能介绍"><a href="#_1-4-常用功能介绍" class="header-anchor">#</a> 1.4 常用功能介绍</h1> <h1 id="_1-4-1-http代理和反向代理"><a href="#_1-4-1-http代理和反向代理" class="header-anchor">#</a> 1.4.1 HTTP代理和反向代理</h1> <h1 id="_1-4-2-负载均衡"><a href="#_1-4-2-负载均衡" class="header-anchor">#</a> 1.4.2 负载均衡</h1> <h1 id="_1-4-3-web缓存"><a href="#_1-4-3-web缓存" class="header-anchor">#</a> 1.4.3 Web缓存</h1> <h1 id="_1-5-本章小结"><a href="#_1-5-本章小结" class="header-anchor">#</a> 1.5 本章小结</h1> <h1 id="第2章-nginx服务器的安装部署"><a href="#第2章-nginx服务器的安装部署" class="header-anchor">#</a> 第2章 Nginx服务器的安装部署</h1> <h1 id="_2-1-如何获取nginx服务器安装文件"><a href="#_2-1-如何获取nginx服务器安装文件" class="header-anchor">#</a> 2.1 如何获取Nginx服务器安装文件</h1> <h1 id="_2-1-1-获取新版本的nginx服务器"><a href="#_2-1-1-获取新版本的nginx服务器" class="header-anchor">#</a> 2.1.1 获取新版本的Nginx服务器</h1> <h1 id="_2-1-2-获取nginx服务器的历史版本"><a href="#_2-1-2-获取nginx服务器的历史版本" class="header-anchor">#</a> 2.1.2 获取Nginx服务器的历史版本</h1> <h1 id="_2-2-安装nginx服务器和基本配置"><a href="#_2-2-安装nginx服务器和基本配置" class="header-anchor">#</a> 2.2 安装Nginx服务器和基本配置</h1> <h1 id="_2-2-1-windows版本的安装"><a href="#_2-2-1-windows版本的安装" class="header-anchor">#</a> 2.2.1 Windows版本的安装</h1> <h1 id="_2-2-2-linux版本的编译和安装：准备工作"><a href="#_2-2-2-linux版本的编译和安装：准备工作" class="header-anchor">#</a> 2.2.2 Linux版本的编译和安装：准备工作</h1> <h1 id="_2-2-3-linux版本的编译和安装：nginx软件的自动脚本"><a href="#_2-2-3-linux版本的编译和安装：nginx软件的自动脚本" class="header-anchor">#</a> 2.2.3 Linux版本的编译和安装：Nginx软件的自动脚本</h1> <h1 id="_2-2-4-linux版本的编译和安装：nginx源代码的编译和安装"><a href="#_2-2-4-linux版本的编译和安装：nginx源代码的编译和安装" class="header-anchor">#</a> 2.2.4 Linux版本的编译和安装：Nginx源代码的编译和安装</h1> <h1 id="_2-3-nginx服务的启停控制"><a href="#_2-3-nginx服务的启停控制" class="header-anchor">#</a> 2.3 Nginx服务的启停控制</h1> <h1 id="_2-3-1-nginx服务的信号控制"><a href="#_2-3-1-nginx服务的信号控制" class="header-anchor">#</a> 2.3.1 Nginx服务的信号控制</h1> <h1 id="_2-3-2-nginx服务的启动"><a href="#_2-3-2-nginx服务的启动" class="header-anchor">#</a> 2.3.2 Nginx服务的启动</h1> <h1 id="_2-3-3-nginx服务的停止"><a href="#_2-3-3-nginx服务的停止" class="header-anchor">#</a> 2.3.3 Nginx服务的停止</h1> <h1 id="_2-3-4-nginx服务的重启"><a href="#_2-3-4-nginx服务的重启" class="header-anchor">#</a> 2.3.4 Nginx服务的重启</h1> <h1 id="_2-3-5-nginx服务器的升级"><a href="#_2-3-5-nginx服务器的升级" class="header-anchor">#</a> 2.3.5 Nginx服务器的升级</h1> <h1 id="_2-4-nginx服务器基础配置指令"><a href="#_2-4-nginx服务器基础配置指令" class="header-anchor">#</a> 2.4 Nginx服务器基础配置指令</h1> <h1 id="_2-4-1-nginx-conf文件的结构"><a href="#_2-4-1-nginx-conf文件的结构" class="header-anchor">#</a> 2.4.1 nginx.conf文件的结构</h1> <h1 id="_2-4-2-配置运行nginx服务器用户（组）"><a href="#_2-4-2-配置运行nginx服务器用户（组）" class="header-anchor">#</a> 2.4.2 配置运行Nginx服务器用户（组）</h1> <h1 id="_2-4-3-配置允许生成的worker-process数"><a href="#_2-4-3-配置允许生成的worker-process数" class="header-anchor">#</a> 2.4.3 配置允许生成的worker process数</h1> <h1 id="_2-4-4-配置nginx进程pid存放路径"><a href="#_2-4-4-配置nginx进程pid存放路径" class="header-anchor">#</a> 2.4.4 配置Nginx进程PID存放路径</h1> <h1 id="_2-4-5-配置错误日志的存放路径"><a href="#_2-4-5-配置错误日志的存放路径" class="header-anchor">#</a> 2.4.5 配置错误日志的存放路径</h1> <h1 id="_2-4-6-配置文件的引入"><a href="#_2-4-6-配置文件的引入" class="header-anchor">#</a> 2.4.6 配置文件的引入</h1> <h1 id="_2-4-7-设置网络连接的序列化"><a href="#_2-4-7-设置网络连接的序列化" class="header-anchor">#</a> 2.4.7 设置网络连接的序列化</h1> <h1 id="_2-4-8-设置是否允许同时接收多个网络连接"><a href="#_2-4-8-设置是否允许同时接收多个网络连接" class="header-anchor">#</a> 2.4.8 设置是否允许同时接收多个网络连接</h1> <h1 id="_2-4-9-事件驱动模型的选择"><a href="#_2-4-9-事件驱动模型的选择" class="header-anchor">#</a> 2.4.9 事件驱动模型的选择</h1> <h1 id="_2-4-10-配置最大连接数"><a href="#_2-4-10-配置最大连接数" class="header-anchor">#</a> 2.4.10 配置最大连接数</h1> <h1 id="_2-4-11-定义mime-type"><a href="#_2-4-11-定义mime-type" class="header-anchor">#</a> 2.4.11 定义MIME-Type</h1> <h1 id="_2-4-12-自定义服务日志"><a href="#_2-4-12-自定义服务日志" class="header-anchor">#</a> 2.4.12 自定义服务日志</h1> <h1 id="_2-4-13-配置允许sendfile方式传输文件"><a href="#_2-4-13-配置允许sendfile方式传输文件" class="header-anchor">#</a> 2.4.13 配置允许sendfile方式传输文件</h1> <h1 id="_2-4-14-配置连接超时时间"><a href="#_2-4-14-配置连接超时时间" class="header-anchor">#</a> 2.4.14 配置连接超时时间</h1> <h1 id="_2-4-15-单连接请求数上限"><a href="#_2-4-15-单连接请求数上限" class="header-anchor">#</a> 2.4.15 单连接请求数上限</h1> <h1 id="_2-4-16-配置网络监听"><a href="#_2-4-16-配置网络监听" class="header-anchor">#</a> 2.4.16 配置网络监听</h1> <h1 id="_2-4-17-基于名称的虚拟主机配置"><a href="#_2-4-17-基于名称的虚拟主机配置" class="header-anchor">#</a> 2.4.17 基于名称的虚拟主机配置</h1> <h1 id="_2-4-18-基于ip的虚拟主机配置"><a href="#_2-4-18-基于ip的虚拟主机配置" class="header-anchor">#</a> 2.4.18 基于IP的虚拟主机配置</h1> <h1 id="_2-4-19-配置location块"><a href="#_2-4-19-配置location块" class="header-anchor">#</a> 2.4.19 配置location块</h1> <h1 id="_2-4-20-配置请求的根目录"><a href="#_2-4-20-配置请求的根目录" class="header-anchor">#</a> 2.4.20 配置请求的根目录</h1> <h1 id="_2-4-21-更改location的uri"><a href="#_2-4-21-更改location的uri" class="header-anchor">#</a> 2.4.21 更改location的URI</h1> <h1 id="_2-4-22-设置网站的默认首页"><a href="#_2-4-22-设置网站的默认首页" class="header-anchor">#</a> 2.4.22 设置网站的默认首页</h1> <h1 id="_2-4-23-设置网站的错误页面"><a href="#_2-4-23-设置网站的错误页面" class="header-anchor">#</a> 2.4.23 设置网站的错误页面</h1> <h1 id="_2-4-24-基于ip配置nginx的访问权限"><a href="#_2-4-24-基于ip配置nginx的访问权限" class="header-anchor">#</a> 2.4.24 基于IP配置Nginx的访问权限</h1> <h1 id="_2-4-25-基于密码配置nginx的访问权限"><a href="#_2-4-25-基于密码配置nginx的访问权限" class="header-anchor">#</a> 2.4.25 基于密码配置Nginx的访问权限</h1> <h1 id="_2-5-nginx服务器基础配置实例"><a href="#_2-5-nginx服务器基础配置实例" class="header-anchor">#</a> 2.5 Nginx服务器基础配置实例</h1> <h1 id="_2-5-1-测试myserver1的访问"><a href="#_2-5-1-测试myserver1的访问" class="header-anchor">#</a> 2.5.1 测试myServer1的访问</h1> <h1 id="_2-5-2-测试myserver2的访问"><a href="#_2-5-2-测试myserver2的访问" class="header-anchor">#</a> 2.5.2 测试myServer2的访问</h1> <h1 id="_2-6-本章小结"><a href="#_2-6-本章小结" class="header-anchor">#</a> 2.6 本章小结</h1> <h1 id="第3章-nginx服务器架构初探"><a href="#第3章-nginx服务器架构初探" class="header-anchor">#</a> 第3章 Nginx服务器架构初探</h1> <h1 id="_3-1-模块化结构"><a href="#_3-1-模块化结构" class="header-anchor">#</a> 3.1 模块化结构</h1> <h1 id="_3-1-1-什么是-模块化设计"><a href="#_3-1-1-什么是-模块化设计" class="header-anchor">#</a> 3.1.1 什么是“模块化设计”</h1> <h1 id="_3-1-2-nginx模块化结构"><a href="#_3-1-2-nginx模块化结构" class="header-anchor">#</a> 3.1.2 Nginx模块化结构</h1> <h1 id="_3-2-nginx服务器的web请求处理机制"><a href="#_3-2-nginx服务器的web请求处理机制" class="header-anchor">#</a> 3.2 Nginx服务器的Web请求处理机制</h1> <h1 id="_3-2-1-多进程方式"><a href="#_3-2-1-多进程方式" class="header-anchor">#</a> 3.2.1 多进程方式</h1> <h1 id="_3-2-2-多线程方式"><a href="#_3-2-2-多线程方式" class="header-anchor">#</a> 3.2.2 多线程方式</h1> <h1 id="_3-2-3-异步方式"><a href="#_3-2-3-异步方式" class="header-anchor">#</a> 3.2.3 异步方式</h1> <h1 id="_3-2-4-nginx服务器如何处理请求"><a href="#_3-2-4-nginx服务器如何处理请求" class="header-anchor">#</a> 3.2.4 Nginx服务器如何处理请求</h1> <h1 id="_3-2-5-nginx服务器的事件处理机制"><a href="#_3-2-5-nginx服务器的事件处理机制" class="header-anchor">#</a> 3.2.5 Nginx服务器的事件处理机制</h1> <h1 id="_3-3-nginx服务器的事件驱动模型"><a href="#_3-3-nginx服务器的事件驱动模型" class="header-anchor">#</a> 3.3 Nginx服务器的事件驱动模型</h1> <h1 id="_3-3-1-事件驱动模型概述"><a href="#_3-3-1-事件驱动模型概述" class="header-anchor">#</a> 3.3.1 事件驱动模型概述</h1> <h1 id="_3-3-2-nginx中的事件驱动模型"><a href="#_3-3-2-nginx中的事件驱动模型" class="header-anchor">#</a> 3.3.2 Nginx中的事件驱动模型</h1> <h1 id="_3-3-3-select库"><a href="#_3-3-3-select库" class="header-anchor">#</a> 3.3.3 select库</h1> <h1 id="_3-3-4-poll库"><a href="#_3-3-4-poll库" class="header-anchor">#</a> 3.3.4 poll库</h1> <h1 id="_3-3-5-epoll库"><a href="#_3-3-5-epoll库" class="header-anchor">#</a> 3.3.5 epoll库</h1> <h1 id="_3-3-6-rtsig模型"><a href="#_3-3-6-rtsig模型" class="header-anchor">#</a> 3.3.6 rtsig模型</h1> <h1 id="_3-3-7-其他事件驱动模型"><a href="#_3-3-7-其他事件驱动模型" class="header-anchor">#</a> 3.3.7 其他事件驱动模型</h1> <h1 id="_3-4-设计架构概览"><a href="#_3-4-设计架构概览" class="header-anchor">#</a> 3.4 设计架构概览</h1> <h1 id="_3-4-1-nginx服务器架构"><a href="#_3-4-1-nginx服务器架构" class="header-anchor">#</a> 3.4.1 Nginx服务器架构</h1> <h1 id="_3-4-2-nginx服务器的进程"><a href="#_3-4-2-nginx服务器的进程" class="header-anchor">#</a> 3.4.2 Nginx服务器的进程</h1> <h1 id="_3-4-3-进程交互"><a href="#_3-4-3-进程交互" class="header-anchor">#</a> 3.4.3 进程交互</h1> <h1 id="_3-4-4-run-loops事件处理循环模型"><a href="#_3-4-4-run-loops事件处理循环模型" class="header-anchor">#</a> 3.4.4 Run Loops事件处理循环模型</h1> <h1 id="_3-5-本章小结"><a href="#_3-5-本章小结" class="header-anchor">#</a> 3.5 本章小结</h1> <h1 id="第4章-nginx服务器的高级配置"><a href="#第4章-nginx服务器的高级配置" class="header-anchor">#</a> 第4章 Nginx服务器的高级配置</h1> <h1 id="_4-1-针对ipv4的内核7个参数的配置优化"><a href="#_4-1-针对ipv4的内核7个参数的配置优化" class="header-anchor">#</a> 4.1 针对IPv4的内核7个参数的配置优化</h1> <h1 id="_4-2-针对cpu的nginx配置优化的2个指令"><a href="#_4-2-针对cpu的nginx配置优化的2个指令" class="header-anchor">#</a> 4.2 针对CPU的Nginx配置优化的2个指令</h1> <h1 id="_4-3-与网络连接相关的配置的4个指令"><a href="#_4-3-与网络连接相关的配置的4个指令" class="header-anchor">#</a> 4.3 与网络连接相关的配置的4个指令</h1> <h1 id="_4-4-与事件驱动模型相关的配置的8个指令"><a href="#_4-4-与事件驱动模型相关的配置的8个指令" class="header-anchor">#</a> 4.4 与事件驱动模型相关的配置的8个指令</h1> <h1 id="_4-5-本章小结"><a href="#_4-5-本章小结" class="header-anchor">#</a> 4.5 本章小结</h1> <h1 id="第5章-nginx服务器的gzip压缩"><a href="#第5章-nginx服务器的gzip压缩" class="header-anchor">#</a> 第5章 Nginx服务器的Gzip压缩</h1> <h1 id="_5-1-由ngx-http-gzip-module模块处理的9个指令"><a href="#_5-1-由ngx-http-gzip-module模块处理的9个指令" class="header-anchor">#</a> 5.1 由ngx_http_gzip_module模块处理的9个指令</h1> <h1 id="_5-2-由ngx-http-gzip-static-module模块处理的指令"><a href="#_5-2-由ngx-http-gzip-static-module模块处理的指令" class="header-anchor">#</a> 5.2 由ngx_http_gzip_static_module模块处理的指令</h1> <h1 id="_5-3-由ngx-http-gunzip-module模块处理的2个指令"><a href="#_5-3-由ngx-http-gunzip-module模块处理的2个指令" class="header-anchor">#</a> 5.3 由ngx_http_gunzip_module模块处理的2个指令</h1> <h1 id="_5-4-gzip压缩功能的使用"><a href="#_5-4-gzip压缩功能的使用" class="header-anchor">#</a> 5.4 Gzip压缩功能的使用</h1> <h1 id="_5-4-1-gzip压缩功能综合配置实例"><a href="#_5-4-1-gzip压缩功能综合配置实例" class="header-anchor">#</a> 5.4.1 Gzip压缩功能综合配置实例</h1> <h1 id="_5-4-2-gzip压缩功能与ie6浏览器运行脚本的兼容问题"><a href="#_5-4-2-gzip压缩功能与ie6浏览器运行脚本的兼容问题" class="header-anchor">#</a> 5.4.2 Gzip压缩功能与IE6浏览器运行脚本的兼容问题</h1> <h1 id="_5-4-3-nginx与其他服务器交互时产生的gzip压缩功能相关问题"><a href="#_5-4-3-nginx与其他服务器交互时产生的gzip压缩功能相关问题" class="header-anchor">#</a> 5.4.3 Nginx与其他服务器交互时产生的Gzip压缩功能相关问题</h1> <h1 id="_5-5-本章小结"><a href="#_5-5-本章小结" class="header-anchor">#</a> 5.5 本章小结</h1> <h1 id="第6章-nginx服务器的rewrite功能"><a href="#第6章-nginx服务器的rewrite功能" class="header-anchor">#</a> 第6章 Nginx服务器的Rewrite功能</h1> <h1 id="_6-1-nginx后端服务器组的配置的5个指令"><a href="#_6-1-nginx后端服务器组的配置的5个指令" class="header-anchor">#</a> 6.1 Nginx后端服务器组的配置的5个指令</h1> <h1 id="_6-2-rewrite功能的配置"><a href="#_6-2-rewrite功能的配置" class="header-anchor">#</a> 6.2 Rewrite功能的配置</h1> <h1 id="_6-2-1-地址重写-与-地址转发"><a href="#_6-2-1-地址重写-与-地址转发" class="header-anchor">#</a> 6.2.1 “地址重写”与“地址转发”</h1> <h1 id="_6-2-2-rewrite规则"><a href="#_6-2-2-rewrite规则" class="header-anchor">#</a> 6.2.2 Rewrite规则</h1> <h1 id="_6-2-3-if指令"><a href="#_6-2-3-if指令" class="header-anchor">#</a> 6.2.3 if指令</h1> <h1 id="_6-2-4-break指令"><a href="#_6-2-4-break指令" class="header-anchor">#</a> 6.2.4 break指令</h1> <h1 id="_6-2-5-rewrite指令"><a href="#_6-2-5-rewrite指令" class="header-anchor">#</a> 6.2.5 rewrite指令</h1> <h1 id="_6-2-6-rewrite-log指令"><a href="#_6-2-6-rewrite-log指令" class="header-anchor">#</a> 6.2.6 rewrite_log指令</h1> <h1 id="_6-2-7-set指令"><a href="#_6-2-7-set指令" class="header-anchor">#</a> 6.2.7 set指令</h1> <h1 id="_6-2-8-uninitialized-variable-warn指令"><a href="#_6-2-8-uninitialized-variable-warn指令" class="header-anchor">#</a> 6.2.8 uninitialized_variable_warn指令</h1> <h1 id="_6-2-9-rewrite常用全局变量"><a href="#_6-2-9-rewrite常用全局变量" class="header-anchor">#</a> 6.2.9 Rewrite常用全局变量</h1> <h1 id="_6-3-rewrite的使用"><a href="#_6-3-rewrite的使用" class="header-anchor">#</a> 6.3 Rewrite的使用</h1> <h1 id="_6-3-1-域名跳转"><a href="#_6-3-1-域名跳转" class="header-anchor">#</a> 6.3.1 域名跳转</h1> <h1 id="_6-3-2-域名镜像"><a href="#_6-3-2-域名镜像" class="header-anchor">#</a> 6.3.2 域名镜像</h1> <h1 id="_6-3-3-独立域名"><a href="#_6-3-3-独立域名" class="header-anchor">#</a> 6.3.3 独立域名</h1> <h1 id="_6-3-4-目录自动添加"><a href="#_6-3-4-目录自动添加" class="header-anchor">#</a> 6.3.4 目录自动添加“/”</h1> <h1 id="_6-3-5-目录合并"><a href="#_6-3-5-目录合并" class="header-anchor">#</a> 6.3.5 目录合并</h1> <h1 id="_6-3-6-防盗链"><a href="#_6-3-6-防盗链" class="header-anchor">#</a> 6.3.6 防盗链</h1> <h1 id="_6-4-本章小结"><a href="#_6-4-本章小结" class="header-anchor">#</a> 6.4 本章小结</h1> <h1 id="第7章-nginx服务器的代理服务"><a href="#第7章-nginx服务器的代理服务" class="header-anchor">#</a> 第7章 Nginx服务器的代理服务</h1> <h1 id="_7-1-正向代理与反向代理的概念"><a href="#_7-1-正向代理与反向代理的概念" class="header-anchor">#</a> 7.1 正向代理与反向代理的概念</h1> <h1 id="_7-2-nginx服务器的正向代理服务"><a href="#_7-2-nginx服务器的正向代理服务" class="header-anchor">#</a> 7.2 Nginx服务器的正向代理服务</h1> <h1 id="_7-2-1-nginx服务器正向代理服务的配置的3个指令"><a href="#_7-2-1-nginx服务器正向代理服务的配置的3个指令" class="header-anchor">#</a> 7.2.1 Nginx服务器正向代理服务的配置的3个指令</h1> <h1 id="_7-2-2-nginx服务器正向代理服务的使用"><a href="#_7-2-2-nginx服务器正向代理服务的使用" class="header-anchor">#</a> 7.2.2 Nginx服务器正向代理服务的使用</h1> <h1 id="_7-3-nginx服务器的反向代理服务"><a href="#_7-3-nginx服务器的反向代理服务" class="header-anchor">#</a> 7.3 Nginx服务器的反向代理服务</h1> <h1 id="_7-3-1-反向代理的基本设置的21个指令"><a href="#_7-3-1-反向代理的基本设置的21个指令" class="header-anchor">#</a> 7.3.1 反向代理的基本设置的21个指令</h1> <h1 id="_7-3-2-proxy-buffer的配置的7个指令"><a href="#_7-3-2-proxy-buffer的配置的7个指令" class="header-anchor">#</a> 7.3.2 Proxy Buffer的配置的7个指令</h1> <h1 id="_7-3-3-proxy-cache的配置的12个指令"><a href="#_7-3-3-proxy-cache的配置的12个指令" class="header-anchor">#</a> 7.3.3 Proxy Cache的配置的12个指令</h1> <h1 id="_7-4-nginx服务器的负载均衡"><a href="#_7-4-nginx服务器的负载均衡" class="header-anchor">#</a> 7.4 Nginx服务器的负载均衡</h1> <h1 id="_7-4-1-什么是负载均衡"><a href="#_7-4-1-什么是负载均衡" class="header-anchor">#</a> 7.4.1 什么是负载均衡</h1> <h1 id="_7-4-2-nginx服务器负载均衡配置"><a href="#_7-4-2-nginx服务器负载均衡配置" class="header-anchor">#</a> 7.4.2 Nginx服务器负载均衡配置</h1> <h1 id="_7-4-3-配置实例一：对所有请求实现一般轮询规则的负载均衡"><a href="#_7-4-3-配置实例一：对所有请求实现一般轮询规则的负载均衡" class="header-anchor">#</a> 7.4.3 配置实例一：对所有请求实现一般轮询规则的负载均衡</h1> <h1 id="_7-4-4-配置实例二：对所有请求实现加权轮询规则的负载均衡"><a href="#_7-4-4-配置实例二：对所有请求实现加权轮询规则的负载均衡" class="header-anchor">#</a> 7.4.4 配置实例二：对所有请求实现加权轮询规则的负载均衡</h1> <h1 id="_7-4-5-配置实例三：对特定资源实现负载均衡"><a href="#_7-4-5-配置实例三：对特定资源实现负载均衡" class="header-anchor">#</a> 7.4.5 配置实例三：对特定资源实现负载均衡</h1> <h1 id="_7-4-6-配置实例四：对不同域名实现负载均衡"><a href="#_7-4-6-配置实例四：对不同域名实现负载均衡" class="header-anchor">#</a> 7.4.6 配置实例四：对不同域名实现负载均衡</h1> <h1 id="_7-4-7-配置实例五：实现带有url重写的负载均衡"><a href="#_7-4-7-配置实例五：实现带有url重写的负载均衡" class="header-anchor">#</a> 7.4.7 配置实例五：实现带有URL重写的负载均衡</h1> <h1 id="_7-5-本章小结"><a href="#_7-5-本章小结" class="header-anchor">#</a> 7.5 本章小结</h1> <h1 id="第8章-nginx服务器的缓存机制"><a href="#第8章-nginx服务器的缓存机制" class="header-anchor">#</a> 第8章 Nginx服务器的缓存机制</h1> <h1 id="_8-1-web缓存技术简述"><a href="#_8-1-web缓存技术简述" class="header-anchor">#</a> 8.1 Web缓存技术简述</h1> <h1 id="_8-2-404错误驱动web缓存"><a href="#_8-2-404错误驱动web缓存" class="header-anchor">#</a> 8.2 404错误驱动Web缓存</h1> <h1 id="_8-3-资源不存在驱动web缓存"><a href="#_8-3-资源不存在驱动web缓存" class="header-anchor">#</a> 8.3 资源不存在驱动Web缓存</h1> <h1 id="_8-4-基于memcached的缓存机制的6个指令"><a href="#_8-4-基于memcached的缓存机制的6个指令" class="header-anchor">#</a> 8.4 基于memcached的缓存机制的6个指令</h1> <h1 id="_8-5-proxy-cache缓存机制"><a href="#_8-5-proxy-cache缓存机制" class="header-anchor">#</a> 8.5 Proxy Cache缓存机制</h1> <h1 id="_8-6-nginx与squid组合"><a href="#_8-6-nginx与squid组合" class="header-anchor">#</a> 8.6 Nginx与Squid组合</h1> <h1 id="_8-6-1-squid服务器的配置"><a href="#_8-6-1-squid服务器的配置" class="header-anchor">#</a> 8.6.1 Squid服务器的配置</h1> <h1 id="_8-6-2-nginx服务器的配置"><a href="#_8-6-2-nginx服务器的配置" class="header-anchor">#</a> 8.6.2 Nginx服务器的配置</h1> <h1 id="_8-7-基于第三方模块ncache的缓存机制"><a href="#_8-7-基于第三方模块ncache的缓存机制" class="header-anchor">#</a> 8.7 基于第三方模块ncache的缓存机制</h1> <h1 id="_8-8-本章小结"><a href="#_8-8-本章小结" class="header-anchor">#</a> 8.8 本章小结</h1> <h1 id="第9章-nginx服务器的邮件服务"><a href="#第9章-nginx服务器的邮件服务" class="header-anchor">#</a> 第9章 Nginx服务器的邮件服务</h1> <h1 id="_9-1-邮件服务"><a href="#_9-1-邮件服务" class="header-anchor">#</a> 9.1 邮件服务</h1> <h1 id="_9-2-nginx邮件服务的配置的12个指令"><a href="#_9-2-nginx邮件服务的配置的12个指令" class="header-anchor">#</a> 9.2 Nginx邮件服务的配置的12个指令</h1> <h1 id="_9-3-nginx邮件服务配置实例"><a href="#_9-3-nginx邮件服务配置实例" class="header-anchor">#</a> 9.3 Nginx邮件服务配置实例</h1> <h1 id="_9-4-本章小结"><a href="#_9-4-本章小结" class="header-anchor">#</a> 9.4 本章小结</h1> <h1 id="第10章-nginx源码结构"><a href="#第10章-nginx源码结构" class="header-anchor">#</a> 第10章 Nginx源码结构</h1> <h1 id="_10-1-nginx源码的3个目录结构"><a href="#_10-1-nginx源码的3个目录结构" class="header-anchor">#</a> 10.1 Nginx源码的3个目录结构</h1> <h1 id="_10-1-1-core目录"><a href="#_10-1-1-core目录" class="header-anchor">#</a> 10.1.1 core目录</h1> <h1 id="_10-1-2-event目录"><a href="#_10-1-2-event目录" class="header-anchor">#</a> 10.1.2 event目录</h1> <h1 id="_10-1-3-http目录"><a href="#_10-1-3-http目录" class="header-anchor">#</a> 10.1.3 http目录</h1> <h1 id="_10-2-nginx源码的模块化结构"><a href="#_10-2-nginx源码的模块化结构" class="header-anchor">#</a> 10.2 Nginx源码的模块化结构</h1> <h1 id="_10-2-1-公共功能"><a href="#_10-2-1-公共功能" class="header-anchor">#</a> 10.2.1 公共功能</h1> <h1 id="_10-2-2-配置解析"><a href="#_10-2-2-配置解析" class="header-anchor">#</a> 10.2.2 配置解析</h1> <h1 id="_10-2-3-内存管理"><a href="#_10-2-3-内存管理" class="header-anchor">#</a> 10.2.3 内存管理</h1> <h1 id="_10-2-4-事件驱动"><a href="#_10-2-4-事件驱动" class="header-anchor">#</a> 10.2.4 事件驱动</h1> <h1 id="_10-2-5-日志管理"><a href="#_10-2-5-日志管理" class="header-anchor">#</a> 10.2.5 日志管理</h1> <h1 id="_10-2-6-http服务"><a href="#_10-2-6-http服务" class="header-anchor">#</a> 10.2.6 HTTP服务</h1> <h1 id="_10-2-7-mail服务"><a href="#_10-2-7-mail服务" class="header-anchor">#</a> 10.2.7 Mail服务</h1> <h1 id="_10-2-8-模块支持"><a href="#_10-2-8-模块支持" class="header-anchor">#</a> 10.2.8 模块支持</h1> <h1 id="_10-3-本章小结"><a href="#_10-3-本章小结" class="header-anchor">#</a> 10.3 本章小结</h1> <h1 id="第11章-nginx基本数据结构"><a href="#第11章-nginx基本数据结构" class="header-anchor">#</a> 第11章 Nginx基本数据结构</h1> <h1 id="_11-1-ngx-module-s结构体"><a href="#_11-1-ngx-module-s结构体" class="header-anchor">#</a> 11.1 ngx_module_s结构体</h1> <h1 id="_11-1-1-分类标识ctx-index"><a href="#_11-1-1-分类标识ctx-index" class="header-anchor">#</a> 11.1.1 分类标识ctx_index</h1> <h1 id="_11-1-2-模块计数器index"><a href="#_11-1-2-模块计数器index" class="header-anchor">#</a> 11.1.2 模块计数器index</h1> <h1 id="_11-1-3-模块上下文"><a href="#_11-1-3-模块上下文" class="header-anchor">#</a> 11.1.3 模块上下文</h1> <h1 id="_11-1-4-回调函数"><a href="#_11-1-4-回调函数" class="header-anchor">#</a> 11.1.4 回调函数</h1> <h1 id="_11-2-ngx-command-s结构体"><a href="#_11-2-ngx-command-s结构体" class="header-anchor">#</a> 11.2 ngx_command_s结构体</h1> <h1 id="_11-2-1-type成员"><a href="#_11-2-1-type成员" class="header-anchor">#</a> 11.2.1 type成员</h1> <h1 id="_11-2-2-函数指针set"><a href="#_11-2-2-函数指针set" class="header-anchor">#</a> 11.2.2 函数指针set</h1> <h1 id="_11-2-3-conf和offset"><a href="#_11-2-3-conf和offset" class="header-anchor">#</a> 11.2.3 conf和offset</h1> <h1 id="_11-3-3个基本模块的指令集数组结构"><a href="#_11-3-3个基本模块的指令集数组结构" class="header-anchor">#</a> 11.3 3个基本模块的指令集数组结构</h1> <h1 id="_11-3-1-http模块"><a href="#_11-3-1-http模块" class="header-anchor">#</a> 11.3.1 http模块</h1> <h1 id="_11-3-2-event模块"><a href="#_11-3-2-event模块" class="header-anchor">#</a> 11.3.2 event模块</h1> <h1 id="_11-3-3-mail模块"><a href="#_11-3-3-mail模块" class="header-anchor">#</a> 11.3.3 mail模块</h1> <h1 id="_11-4-ngx-pool-s结构体"><a href="#_11-4-ngx-pool-s结构体" class="header-anchor">#</a> 11.4 ngx_ pool_s结构体</h1> <h1 id="_11-4-1-ngx-pool-data-t结构体"><a href="#_11-4-1-ngx-pool-data-t结构体" class="header-anchor">#</a> 11.4.1 ngx_pool_data_t结构体</h1> <h1 id="_11-4-2-ngx-pool-large-s结构体"><a href="#_11-4-2-ngx-pool-large-s结构体" class="header-anchor">#</a> 11.4.2 ngx_pool_large_s结构体</h1> <h1 id="_11-4-3-ngx-pool-cleanup-s结构体"><a href="#_11-4-3-ngx-pool-cleanup-s结构体" class="header-anchor">#</a> 11.4.3 ngx_pool_cleanup_s结构体</h1> <h1 id="_11-5-nginx-socket相关的数据结构"><a href="#_11-5-nginx-socket相关的数据结构" class="header-anchor">#</a> 11.5 Nginx socket相关的数据结构</h1> <h1 id="_11-5-1-ngx-listening-s结构体"><a href="#_11-5-1-ngx-listening-s结构体" class="header-anchor">#</a> 11.5.1 ngx_listening_s结构体</h1> <h1 id="_11-5-2-ngx-http-conf-port-t结构体"><a href="#_11-5-2-ngx-http-conf-port-t结构体" class="header-anchor">#</a> 11.5.2 ngx_http_conf_port_t结构体</h1> <h1 id="_11-5-3-ngx-http-conf-addr-t结构体"><a href="#_11-5-3-ngx-http-conf-addr-t结构体" class="header-anchor">#</a> 11.5.3 ngx_http_conf_addr_t结构体</h1> <h1 id="_11-6-ngx-event-s结构体"><a href="#_11-6-ngx-event-s结构体" class="header-anchor">#</a> 11.6 ngx_event_s结构体</h1> <h1 id="_11-7-ngx-connection-s结构体"><a href="#_11-7-ngx-connection-s结构体" class="header-anchor">#</a> 11.7 ngx_connection_s结构体</h1> <h1 id="_11-8-ngx-cycle-s结构体"><a href="#_11-8-ngx-cycle-s结构体" class="header-anchor">#</a> 11.8 ngx_cycle_s结构体</h1> <h1 id="_11-9-ngx-conf-s结构体"><a href="#_11-9-ngx-conf-s结构体" class="header-anchor">#</a> 11.9 ngx_conf_s结构体</h1> <h1 id="_11-9-1-配置上下文＊ctx"><a href="#_11-9-1-配置上下文＊ctx" class="header-anchor">#</a> 11.9.1 配置上下文＊ctx</h1> <h1 id="_11-9-2-指令类型type"><a href="#_11-9-2-指令类型type" class="header-anchor">#</a> 11.9.2 指令类型type</h1> <h1 id="_11-10-ngx-signal-t结构体"><a href="#_11-10-ngx-signal-t结构体" class="header-anchor">#</a> 11.10 ngx_signal_t结构体</h1> <h1 id="_11-11-ngx-process-t结构体"><a href="#_11-11-ngx-process-t结构体" class="header-anchor">#</a> 11.11 ngx_process_t结构体</h1> <h1 id="_11-12-本章小结"><a href="#_11-12-本章小结" class="header-anchor">#</a> 11.12 本章小结</h1> <h1 id="第12章-nginx的启动初始化"><a href="#第12章-nginx的启动初始化" class="header-anchor">#</a> 第12章 Nginx的启动初始化</h1> <h1 id="_12-1-nginx启动过程概览"><a href="#_12-1-nginx启动过程概览" class="header-anchor">#</a> 12.1 Nginx启动过程概览</h1> <h1 id="_12-1-1-程序初始化"><a href="#_12-1-1-程序初始化" class="header-anchor">#</a> 12.1.1 程序初始化</h1> <h1 id="_12-1-2-启动多进程"><a href="#_12-1-2-启动多进程" class="header-anchor">#</a> 12.1.2 启动多进程</h1> <h1 id="_12-2-nginx的初始化"><a href="#_12-2-nginx的初始化" class="header-anchor">#</a> 12.2 Nginx的初始化</h1> <h1 id="_12-2-1-读取并处理启动参数"><a href="#_12-2-1-读取并处理启动参数" class="header-anchor">#</a> 12.2.1 读取并处理启动参数</h1> <h1 id="_12-2-2-继承socket"><a href="#_12-2-2-继承socket" class="header-anchor">#</a> 12.2.2 继承socket</h1> <h1 id="_12-2-3-初始化时间及建立新的cycle结构"><a href="#_12-2-3-初始化时间及建立新的cycle结构" class="header-anchor">#</a> 12.2.3 初始化时间及建立新的cycle结构</h1> <h1 id="_12-2-4-建立core模块上下文结构"><a href="#_12-2-4-建立core模块上下文结构" class="header-anchor">#</a> 12.2.4 建立core模块上下文结构</h1> <h1 id="_12-2-5-解析配置文件"><a href="#_12-2-5-解析配置文件" class="header-anchor">#</a> 12.2.5 解析配置文件</h1> <h1 id="_12-2-6-初始化core模块上下文"><a href="#_12-2-6-初始化core模块上下文" class="header-anchor">#</a> 12.2.6 初始化core模块上下文</h1> <h1 id="_12-2-7-创建pid文件"><a href="#_12-2-7-创建pid文件" class="header-anchor">#</a> 12.2.7 创建PID文件</h1> <h1 id="_12-2-8-处理监听socket"><a href="#_12-2-8-处理监听socket" class="header-anchor">#</a> 12.2.8 处理监听socket</h1> <h1 id="_12-2-9-信号设置"><a href="#_12-2-9-信号设置" class="header-anchor">#</a> 12.2.9 信号设置</h1> <h1 id="_12-2-10-启动master-process"><a href="#_12-2-10-启动master-process" class="header-anchor">#</a> 12.2.10 启动Master Process</h1> <h1 id="_12-2-11-nginx初始化过程总结"><a href="#_12-2-11-nginx初始化过程总结" class="header-anchor">#</a> 12.2.11 Nginx初始化过程总结</h1> <h1 id="_12-3-nginx的启动"><a href="#_12-3-nginx的启动" class="header-anchor">#</a> 12.3 Nginx的启动</h1> <h1 id="_12-3-1-主进程设置信号阻塞"><a href="#_12-3-1-主进程设置信号阻塞" class="header-anchor">#</a> 12.3.1 主进程设置信号阻塞</h1> <h1 id="_12-3-2-设置进程标题"><a href="#_12-3-2-设置进程标题" class="header-anchor">#</a> 12.3.2 设置进程标题</h1> <h1 id="_12-3-3-启动工作进程"><a href="#_12-3-3-启动工作进程" class="header-anchor">#</a> 12.3.3 启动工作进程</h1> <h1 id="_12-3-4-启动缓存索引重建及管理进程"><a href="#_12-3-4-启动缓存索引重建及管理进程" class="header-anchor">#</a> 12.3.4 启动缓存索引重建及管理进程</h1> <h1 id="_12-3-5-循环处理信号"><a href="#_12-3-5-循环处理信号" class="header-anchor">#</a> 12.3.5 循环处理信号</h1> <h1 id="_12-3-6-nginx启动过程总结"><a href="#_12-3-6-nginx启动过程总结" class="header-anchor">#</a> 12.3.6 Nginx启动过程总结</h1> <h1 id="_12-4-本章小结"><a href="#_12-4-本章小结" class="header-anchor">#</a> 12.4 本章小结</h1> <h1 id="第13章-nginx的时间管理"><a href="#第13章-nginx的时间管理" class="header-anchor">#</a> 第13章 Nginx的时间管理</h1> <h1 id="_13-1-获取系统时间的一般方法"><a href="#_13-1-获取系统时间的一般方法" class="header-anchor">#</a> 13.1 获取系统时间的一般方法</h1> <h1 id="_13-1-1-系统调用的开销"><a href="#_13-1-1-系统调用的开销" class="header-anchor">#</a> 13.1.1 系统调用的开销</h1> <h1 id="_13-1-2-gettimeofday"><a href="#_13-1-2-gettimeofday" class="header-anchor">#</a> 13.1.2 gettimeofday()</h1> <h1 id="_13-2-nginx时间管理的工作原理"><a href="#_13-2-nginx时间管理的工作原理" class="header-anchor">#</a> 13.2 Nginx时间管理的工作原理</h1> <h1 id="_13-2-1-时间缓存的更新"><a href="#_13-2-1-时间缓存的更新" class="header-anchor">#</a> 13.2.1 时间缓存的更新</h1> <h1 id="_13-2-2-更新时间缓存的时机"><a href="#_13-2-2-更新时间缓存的时机" class="header-anchor">#</a> 13.2.2 更新时间缓存的时机</h1> <h1 id="_13-3-缓存时间的精度"><a href="#_13-3-缓存时间的精度" class="header-anchor">#</a> 13.3 缓存时间的精度</h1> <h1 id="_13-3-1-设置缓存时间的精度"><a href="#_13-3-1-设置缓存时间的精度" class="header-anchor">#</a> 13.3.1 设置缓存时间的精度</h1> <h1 id="_13-3-2-缓存时间精度的控制原理"><a href="#_13-3-2-缓存时间精度的控制原理" class="header-anchor">#</a> 13.3.2 缓存时间精度的控制原理</h1> <h1 id="_13-4-本章小结"><a href="#_13-4-本章小结" class="header-anchor">#</a> 13.4 本章小结</h1> <h1 id="第14章-nginx的内存管理"><a href="#第14章-nginx的内存管理" class="header-anchor">#</a> 第14章 Nginx的内存管理</h1> <h1 id="_14-1-内存池的逻辑结构"><a href="#_14-1-内存池的逻辑结构" class="header-anchor">#</a> 14.1 内存池的逻辑结构</h1> <h1 id="_14-2-内存池的管理"><a href="#_14-2-内存池的管理" class="header-anchor">#</a> 14.2 内存池的管理</h1> <h1 id="_14-2-1-创建内存池"><a href="#_14-2-1-创建内存池" class="header-anchor">#</a> 14.2.1 创建内存池</h1> <h1 id="_14-2-2-销毁内存池"><a href="#_14-2-2-销毁内存池" class="header-anchor">#</a> 14.2.2 销毁内存池</h1> <h1 id="_14-2-3-重置内存池"><a href="#_14-2-3-重置内存池" class="header-anchor">#</a> 14.2.3 重置内存池</h1> <h1 id="_14-3-内存的使用"><a href="#_14-3-内存的使用" class="header-anchor">#</a> 14.3 内存的使用</h1> <h1 id="_14-3-1-申请内存"><a href="#_14-3-1-申请内存" class="header-anchor">#</a> 14.3.1 申请内存</h1> <h1 id="_14-3-2-释放内存"><a href="#_14-3-2-释放内存" class="header-anchor">#</a> 14.3.2 释放内存</h1> <h1 id="_14-3-3-回收内存"><a href="#_14-3-3-回收内存" class="header-anchor">#</a> 14.3.3 回收内存</h1> <h1 id="_14-4-本章小结"><a href="#_14-4-本章小结" class="header-anchor">#</a> 14.4 本章小结</h1> <h1 id="第15章-nginx工作进程"><a href="#第15章-nginx工作进程" class="header-anchor">#</a> 第15章 Nginx工作进程</h1> <h1 id="_15-1-工作进程概览"><a href="#_15-1-工作进程概览" class="header-anchor">#</a> 15.1 工作进程概览</h1> <h1 id="_15-2-相关源码分析"><a href="#_15-2-相关源码分析" class="header-anchor">#</a> 15.2 相关源码分析</h1> <h1 id="_15-2-1-设置工作进程运行环境"><a href="#_15-2-1-设置工作进程运行环境" class="header-anchor">#</a> 15.2.1 设置工作进程运行环境</h1> <h1 id="_15-2-2-监听和处理进程控制事件"><a href="#_15-2-2-监听和处理进程控制事件" class="header-anchor">#</a> 15.2.2 监听和处理进程控制事件</h1> <h1 id="_15-2-3-接收网络请求事件"><a href="#_15-2-3-接收网络请求事件" class="header-anchor">#</a> 15.2.3 接收网络请求事件</h1> <h1 id="_15-2-4-执行进程控制"><a href="#_15-2-4-执行进程控制" class="header-anchor">#</a> 15.2.4 执行进程控制</h1> <h1 id="_15-3-nginx服务器进程间通信"><a href="#_15-3-nginx服务器进程间通信" class="header-anchor">#</a> 15.3 Nginx服务器进程间通信</h1> <h1 id="_15-3-1-linux进程间通信方式"><a href="#_15-3-1-linux进程间通信方式" class="header-anchor">#</a> 15.3.1 Linux进程间通信方式</h1> <h1 id="_15-3-2-linux进程间双工通信的实现"><a href="#_15-3-2-linux进程间双工通信的实现" class="header-anchor">#</a> 15.3.2 Linux进程间双工通信的实现</h1> <h1 id="_15-3-3-通信通道的建立和设置"><a href="#_15-3-3-通信通道的建立和设置" class="header-anchor">#</a> 15.3.3 通信通道的建立和设置</h1> <h1 id="_15-3-4-通信通道的使用"><a href="#_15-3-4-通信通道的使用" class="header-anchor">#</a> 15.3.4 通信通道的使用</h1> <h1 id="_15-3-5-消息的读写"><a href="#_15-3-5-消息的读写" class="header-anchor">#</a> 15.3.5 消息的读写</h1> <h1 id="_15-4-本章小结"><a href="#_15-4-本章小结" class="header-anchor">#</a> 15.4 本章小结</h1> <h1 id="第16章-nginx的模块编程"><a href="#第16章-nginx的模块编程" class="header-anchor">#</a> 第16章 Nginx的模块编程</h1> <h1 id="_16-1-模块的种类"><a href="#_16-1-模块的种类" class="header-anchor">#</a> 16.1 模块的种类</h1> <h1 id="_16-2-模块开发实践"><a href="#_16-2-模块开发实践" class="header-anchor">#</a> 16.2 模块开发实践</h1> <h1 id="_16-2-1-hello-nginx-模块编程实例"><a href="#_16-2-1-hello-nginx-模块编程实例" class="header-anchor">#</a> 16.2.1 “Hello_Nginx”模块编程实例</h1> <h1 id="_16-2-2-模块的结构"><a href="#_16-2-2-模块的结构" class="header-anchor">#</a> 16.2.2 模块的结构</h1> <h1 id="_16-2-3-模块命名规则"><a href="#_16-2-3-模块命名规则" class="header-anchor">#</a> 16.2.3 模块命名规则</h1> <h1 id="_16-3-模块的编译与安装"><a href="#_16-3-模块的编译与安装" class="header-anchor">#</a> 16.3 模块的编译与安装</h1> <h1 id="_16-4-本章小结"><a href="#_16-4-本章小结" class="header-anchor">#</a> 16.4 本章小结</h1> <h1 id="第17章-nginx在动态网站建设中的应用实例"><a href="#第17章-nginx在动态网站建设中的应用实例" class="header-anchor">#</a> 第17章 Nginx在动态网站建设中的应用实例</h1> <h1 id="_17-1-nginx在jsp网站建设中的应用"><a href="#_17-1-nginx在jsp网站建设中的应用" class="header-anchor">#</a> 17.1 Nginx在JSP网站建设中的应用</h1> <h1 id="_17-1-1-环境描述"><a href="#_17-1-1-环境描述" class="header-anchor">#</a> 17.1.1 环境描述</h1> <h1 id="_17-1-2-特别模块说明"><a href="#_17-1-2-特别模块说明" class="header-anchor">#</a> 17.1.2 特别模块说明</h1> <h1 id="_17-1-3-配置方案"><a href="#_17-1-3-配置方案" class="header-anchor">#</a> 17.1.3 配置方案</h1> <h1 id="_17-2-nginx在php网站建设中的应用"><a href="#_17-2-nginx在php网站建设中的应用" class="header-anchor">#</a> 17.2 Nginx在PHP网站建设中的应用</h1> <h1 id="_17-2-1-环境描述"><a href="#_17-2-1-环境描述" class="header-anchor">#</a> 17.2.1 环境描述</h1> <h1 id="_17-2-2-特别模块说明"><a href="#_17-2-2-特别模块说明" class="header-anchor">#</a> 17.2.2 特别模块说明</h1> <h1 id="_17-2-3-配置方案"><a href="#_17-2-3-配置方案" class="header-anchor">#</a> 17.2.3 配置方案</h1> <h1 id="_17-3-nginx-perl脚本在网站建设中的应用"><a href="#_17-3-nginx-perl脚本在网站建设中的应用" class="header-anchor">#</a> 17.3 Nginx+Perl脚本在网站建设中的应用</h1> <h1 id="_17-3-1-环境描述"><a href="#_17-3-1-环境描述" class="header-anchor">#</a> 17.3.1 环境描述</h1> <h1 id="_17-3-2-特别模块说明"><a href="#_17-3-2-特别模块说明" class="header-anchor">#</a> 17.3.2 特别模块说明</h1> <h1 id="_17-3-3-配置方案"><a href="#_17-3-3-配置方案" class="header-anchor">#</a> 17.3.3 配置方案</h1> <h1 id="_17-4-本章小结"><a href="#_17-4-本章小结" class="header-anchor">#</a> 17.4 本章小结</h1> <h1 id="第18章-nginx经典应用-lnamp"><a href="#第18章-nginx经典应用-lnamp" class="header-anchor">#</a> 第18章 Nginx经典应用——LNAMP</h1> <h1 id="_18-1-lnamp概述"><a href="#_18-1-lnamp概述" class="header-anchor">#</a> 18.1 LNAMP概述</h1> <h1 id="_18-2-手动部署和配置"><a href="#_18-2-手动部署和配置" class="header-anchor">#</a> 18.2 手动部署和配置</h1> <h1 id="_18-2-1-环境准备"><a href="#_18-2-1-环境准备" class="header-anchor">#</a> 18.2.1 环境准备</h1> <h1 id="_18-2-2-安装和配置mysql"><a href="#_18-2-2-安装和配置mysql" class="header-anchor">#</a> 18.2.2 安装和配置MySQL</h1> <h1 id="_18-2-3-安装和配置apache"><a href="#_18-2-3-安装和配置apache" class="header-anchor">#</a> 18.2.3 安装和配置Apache</h1> <h1 id="_18-2-4-安装-php"><a href="#_18-2-4-安装-php" class="header-anchor">#</a> 18.2.4 安装 PHP</h1> <h1 id="_18-3-自动安装"><a href="#_18-3-自动安装" class="header-anchor">#</a> 18.3 自动安装</h1> <h1 id="_18-4-本章小结"><a href="#_18-4-本章小结" class="header-anchor">#</a> 18.4 本章小结</h1> <h1 id="附录a-nginx内置变量"><a href="#附录a-nginx内置变量" class="header-anchor">#</a> 附录A Nginx内置变量</h1> <h1 id="附录b-正则表达式语法"><a href="#附录b-正则表达式语法" class="header-anchor">#</a> 附录B 正则表达式语法</h1> <hr> <h1 id="参考"><a href="#参考" class="header-anchor">#</a> 参考</h1></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
      ←
      <a href="/core/nav.0-8.net/ch5-server/nginx/01-5989431279961056.html" class="prev">
        [原理]Nginx
      </a></span> <span class="next"><a href="/core/nav.0-8.net/ch5-server/tomcat/01-7351274656342609.html">
        [源码]Tomcat
      </a>
      →
    </span></p></div> </main></div><div class="global-ui"></div></div>
    <script src="/core/assets/js/app.acd7146a.js" defer></script><script src="/core/assets/js/2.bfd87e96.js" defer></script><script src="/core/assets/js/130.97cef5d5.js" defer></script>
  </body>
</html>
